60
nº6 julio/agosto 2004 • Precio: 6,00 (España) BizTalk 2004 Server El futuro de la integración empresarial Entrevista a Rafal Luckawiecki Tech•Ed Europe 2004: Crónica de un tiempo de espera Enviando emails con .Net • Configurando la apariencia del control DataGrid • Serialización de XML • Seguridad de Internet Information Server (I) Universidad II Jornadas Académicas Microsoft Research Arquitectura Arquitecturas: Algunos fundamentos Adversus Linux opinión nº6 julio/agosto 2004 • Precio: 6,00 (España) dotNetManía Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET Framework • Windows Server System dotNetManía www.dotnetmania.com Dedicada a los profesionales de la plataforma .NET

Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

  • Upload
    lamngoc

  • View
    237

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

nº6 julio/agosto 2004 • Precio: 6,00 € (España)

BizTalk 2004 ServerEl futuro de la integración empresarial

Entrevista a Rafal LuckawieckiTech•Ed Europe 2004: Crónica de un tiempo de espera

Enviando emails con .Net •Configurando la apariencia del

control DataGrid • Serializaciónde XML • Seguridad de

Internet Information Server (I)

UniversidadII Jornadas Académicas Microsoft Research

ArquitecturaArquitecturas: Algunos fundamentos

Adversus Linuxopinión

nº6 julio/agosto 2004 • Precio: 6,00 € (España)

dotNetManíaVisual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET Framework • Windows Server System

dotNetManíawww.dotnetmania.com Dedicada a los profesionales de la plataforma .NET

Page 2: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom
Page 3: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

La verdad es que en esta revista somos“muy de Tech•Ed”, que nos gusta mucho,vaya. Así que este mes nos hemos ido aÁmsterdam, al Tech•Ed Europe 2004,para entrevistar a personajes de nuestromundo —que publicaremos en breve—,para contarle las novedades que allí apa-rezcan, para aprender de los grandísimosponentes que se suelen asomar por esteevento, para traernos alguna betita… sipuede ser, y sobre todo a pasarlo en gran-de con estos “macroeventos” que montaMicrosoft todos los años para desarrolla-dores y demás profesionales de las TI. Sitiene dinero, tiempo y sabe inglés ¡nodebería faltar a ninguno!

Precisamente, este número va con másretraso del habitual debido a que hemosquerido esperar para contarle algunas cosasdesde Ámsterdam, quizá algo apresurada-mente, pero es que ya no nos vemos has-ta septiembre y nos apetecía mucho publi-carlo “en caliente”. Espero que nos lo sepaperdonar y que merezca la pena.

Por cierto, antes de que se me olvide, yatenemos Beta 1 de Visual Studio 2005 y pue-de descargarse desde http://msdn.micro-soft.com/vs2005/ si es suscriptor a MSDNy si no lo es pues la puede pedir por un

pequeño pago. También desde aquí puededescargarse gratuitamente las nuevas ver-siones “Express” de Visual Studio 2005.

En este número 6 empezamos a publi-car entrevistas más técnicas, de las que sehacen a las personas más relevantes delmundo de la plataforma .NET. De estose encargará, cómo no, el gran MarinoPosadas, que posiblemente sea, y ya séque soy subjetivo, el mejor entrevistadortécnico que tenemos por estos lares.Empezamos con un peso pesado: RafalLuckawiecki, un “e-Visioneer” como le gus-ta autodefinirse.

Por último, y no menos importante,hemos querido hacer un pequeño especialdel recientemente aparecido BizTalk 2004.BizTalk 2004 es una solución de integraciónlíder en la industria y miembro del WindowsServer System. Con motivo del Silicon ValleySpeaker Series, en marzo de 2004, Microsoftpresentó el nuevo BizTalk Server 2004, yno hemos querido esperar más para pre-sentarlo aquí en dotNetManía. Se ha encar-gado Pepe Hevía, uno de los mejores y másprolíficos escritores técnicos del país, quetodavía no había colaborado con nosotros.Pepe ¡porqué has tardado tanto!, espero quehayas venido para quedarte.

dotN

etM

anía

<<

3

Tech•Ed Europe 2004

<<

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, DanielMazzini, David Carmona, FranciscoCharte, Fernando Guerrero, FernandoNogueras, Guillermo ‘guille’ Som,Jesús López, Jordi Rambla, JorgeSerrano, José Manuel Alarcón, José

Miguel Torres, Juan Torres, LiborioLópez, Luis Miguel Blanco, ManuelImaz, Marino Posadas, Miguel Egea,Miguel Katrib, Pablo Abbate, PedroGó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

EditaNetaliac/ Robledal, 13528529 Rivas-Vaciamadrid (Madrid)Tf. (34) 91 6667477Fax (34) 91 4991364

ImprimeGráficas Vallehermosowww.graficasvallehermoso.com

Depósito LegalM-3.075-2004

[email protected]

[email protected]

[email protected]

Nuevos [email protected]

Page 4: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

6dnm.sumario

II Jornadas Académicas Microsoft Research 9-10Docencia e investigación en un mundo de aplicaciones orientadas a servicioBarcelona 24 al 26 de mayo de 2004

Adversus Linux 11-13Llevamos buscando la verdad desde hace siglos. Los hitos en este largo camino son infinitosy a cada paso dado parece que, como a Aquiles con su tortuga, nos quede un mundoinalcanzable por conseguir. Así somos las personas; caemos de continuo en el engaño…

Entrevista a Rafal Luckawiecki 14-16Luckawiecki, es ponente habitual en los Tech-Ed, PDC y demás congresos a nivel mundialy fue nombrado como mejor conferenciante del pasado Tech-Ed 2003 de Barcelona.

Enviando emails con .Net 17-20Un repaso sencillo y práctico de lo que nos ofrece .Net Framework para enviaremails haciendo uso del namespace System.Web.Mail.

BizTalk 2004 Server:El futuro de la integración empresarial 21-33En el artículo principal de este número, contamos las bondades de BizTalk, que ensu versión 2004 demuestra no sólo su madurez, sino su cambio de filosofía, tantocomo el cambio de COM a .Net.

Configurando la apariencia del control DataGrid 34-39Un repaso básico de aquellos elementos del control DataGrid que estáninvolucrados en la personalización de la presentación tabular de los datos.

Serialización de XML 40-43En este artículo, explicamos en qué consiste básicamente la serialización de XML ycómo aplicarla para tratar con XML, ahorrándonos escribir código ysimplificándonos la lectura y escritura del mismo.

Seguridad de Internet Information Server (I) 44-48Primera entrega de esta serie de artículos sobre seguridad. En ésta vemos losdistintos metidos de autenticación que nos ofrece IIS y cómo su uso afecta a laseguridad de nuestras aplicaciones ASP y ASP.NET.

Tech•Ed Europe 2004:Crónica de un tiempo de espera 49-51Ámsterdam 29 de junio al 2 de julio de 2004

Arquitecturas:Algunos fundamentos 52-55El concepto de Arquitectura, en el ámbito de desarrollo de software, ha idoevolucionando y se ha convertido en un concepto bastante complejo, es decir queabarca una gran diversidad de aspectos del desarrollo

dnm.biblioteca.net 56Code Generation in Microsoft .NETBegining .Net Game Programming in C#

dnm.desvan 58

dnm

.sum

ario

Page 5: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom
Page 6: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

6

dnm.noticias<<dnm.noticias

ABBYY, fabricante de reconocimiento de documentos, pro-cesamiento de formularios y tecnologías lingüísticas, ha anun-ciado ABBY PDF Transformer, la solución más completa para con-vertir ficheros PDF en formatos editables de ficheros.

ABBYY PDF Transformer aplica las tecnologías reciente-mente premiadas de OCR y análisis de documentos con la tec-nología de Adobe PDF Library para procesar cualquier ficheroPDF, independientemente del origen, incluyendo PDFs desa-rrollados desde dispositivos de entrada tales como periféricosmultifucinón, copiadoras digitales y escáners o aquellos produ-cios desde aplicaciones como Microsoft Word y Excel.

Para más información: http://www.abbyy.com/pdftransformer.

ComponentOne ha presentado el ComponentOne DevKitpara Visual Studio .NET y ComponentOne DevKit para BorlandDelphi 8. Estos combos no solo incluyen los entornos de desa-rrollo de .NET y Delphi 8, sino que también incluyen la líneacompleta de los componentes para .NET, ASP.NET, dispositi-vos móviles e incluso COM, los cuales están incluidos en elComponentOne Studio Enterprise.

Más información: http://www.componentone.com

no

ticia

s.n

oti

cia

s.n

oti

cia

s.n

oti

cia

s.n

oti

cia

s.n

oti

cia

s

Desde el 1 de abril los concursantes han idopublicando sus proyectos en cualquiera de lasempresas de alojamiento que ofrecieron gratui-tamente el servicio: Acens, Arsys y Verio.Asimismo varias revistas del sector, incluidadotNetManía, han aportado su granito de are-na difundiendo la celebración de este concursoasí como aportando suscripciones gratuitas comoparte del lote de premios.Los requisitos técnicos básicamente eran:

• 100% código manejado• La aplicación servidora no tendrá dispo-

nible ninguna base de datos como SQLServer o Access, pero se podrán utilizarficheros auxiliares de texto o XML paraalmacenar información persistente.

• No se utilizarán componentes en cliente queel usuario deba descargar, del tipo ActiveXo similares. El HTML generado por la apli-cación web puede utilizar cualquier tecno-logía presente en Internet Explorer 6.

Todos los participantes han recibido gra-tuitamente dos entradas de cine. Además hahabido tres premios por categoría, siendo losmismos:

1º premio

• Una consola de videojuegos Xbox más cua-tro juegos

• Mando a distancia para ver DVDs en la Xbox • Una película DVD (a elegir entre “Master

and Commander. Al otro lado del mundo” y“Buscando a Nemo”)

• Un Visual Studio .NET 2003 EnterpriseDeveloper

• Alojamiento gratuito ASP.NET con una delas empresas patrocinadoras durante un año

• Suscripción gratuita a una de las revistaspatrocinadoras durante un año.

2º premio

• Un juego para Xbox • Una película DVD • Un Visual Studio .NET 2003 Professional • Alojamiento gratuito ASP.NET con una de

las empresas patrocinadoras durante un año • Suscripción gratuita a una de las revistas

patrocinadoras durante un año

3º premio

• Una película DVD • Un Visual Basic .NET 2003 Standard • Suscripción gratuita a una de las revistas

patrocinadoras durante un año.

Los premiados por categorías han sido:

Comercio

• 1º Net Shoppinghttp://csanchez.veriospain.net/default.aspxConstantino Sánchez Ballesteros (Alcalá de Henares)

• 2º Comercio ASPhttp://iperez.veriospain.net/Iván Pérez (Madrid)

• 3º _travel Agencia de Viajeshttp://druiz.aspnet.acens.biz/David Ruiz Rincón (Pamplona)

Informes

• 1º Generador de Informeshttp://gnieto.aspnet.acens.biz/informes/admin.aspxJosé Ignacio Merino Martín (Montilla)

• 2º Servidor de encuestas

http://lvalles.veriospain.net/LucíaValles Barbeito (La Coruña)

• 3º ETeacher First Certificate Tutorhttp://bmiller.veriospain.net/ Brent A. Miller (Córdoba)

Portal

• 1º Mehcca Filmhttp://despinosa.veriospain.net/David Espinosa Regueiro (Sestao)

• 2º Portal de programaciónhttp://www.jvizcaya.veriospain.net/Juan Vizcaya García (Mislata)

Comunidades

• 2º Ide-a: Industrial Design & Artshttp://lmguerrero.veriospain.net/Luis Miguel Guerrero Guirado (Málaga)

• 3º Acceso Remoto y multiplataforma a PIM (Personal Information Manager)http://www.davix.aspnet.acens.biz/DavidMarín Calleja (Puertollano)

Tiempos

• 2º MC Servicios Informáticoshttp://jmmendoza.veriospain.net/Jose Manuel Mendoza Contreras (SEVILLA)

Libre

• 1º Control de Precipitacioneshttp://drodero.veriospain.net/Diego Rodero Pulido (Linares)

• 1º Proyecto Freedom MSNhttp://fjrodriguez.veriospain.net/Fco.Javier Rodríguez Mesa (LEON)

• 3º Lector de titulares para una web.http://pespinosa.veriospain.net/Patrick Espinosa (Cerdañola del Vallés)

I Concurso de programación web con ASP.NETEl 15 de junio finalizó el I Concurso de Programación Web con ASP.NET organizado por Microsoft Ibérica

ABBYY presenta PDFTransformer

ComponentOne presentaComponentOne DevKitspara Visual Studio .NET y Borland® Delphi™ 8

Page 7: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dnm.noticias<<

dnm.noticias

Compuware Corporation realizó des-mostraciones en el Microsoft Tech-Ed2004 Europa de sus soluciones de auto-matización de ciclo de vida de sus pro-ductos DevPartner, QACenter y Vantage.

Las soluciones automatizadas deciclo de vida de Compuware permiten alos desarrolladores comprobar como tra-bajar perfectamente para acelerar y mejo-rar la entrega y el uso de las aplicacionesde alta calidad.

“Nosotros estamos encantados deque Compuware haya demostrado susoporte de Visual Studio 2005 TeamSystem”, dijo Prashant Sridharan, jefede producto en el .NET DeveloperProducto Management en MicrosoftCorporation. “Las soluciones para el ciclode vida de aplicaciones de Compuwareson importanptes para una correcta estra-tégia de negocios basada en tecnologíasMicrosoft, y nosotros anticipamos la con-

tinuidad para trabajar estrechamente con ellos para ofrecer un alto valor a los usua-rios”, añadió.

Compuware aporta una demostración de la integración de la tecnología deautomatización de pruebas de Compuware TestPartner con Microsoft Visual Studio2005 Team System. La integración con Microsoft Visual Studio 2005 Team Systempermitirá a los desarrolladores probar funcionalmente sus aplicaciones usandoCompuware TestPartner directamente desde dentro de sus entornos de desarro-llo y aprovechar las nuevas capacidades de Visual Studio 2005.

También en el Tech-Ed Europe, Compuware demostró la más reciente ver-sion de Compuware DevPartner Studio Professional Edition 7.2. Compuware DevPartnerStudio Professional Edition 7.2, que apareció el mes pasado, continuará soportandoVisual Studio .NET 2003 y 2002, incluyendo soporte para operaciones side-by-side de ambos entornos de desarrollo. Entre sus características están código fuen-te estático que implementa la capacidad de que grupos de desarrollo puedan apli-car convenciones de nombres propuestas en el documento Microsoft .NETFramework General Reference Naming Guidelines, junto con la capacidad de detec-tor código que no se ejecutado. Estas características mejoran el rendimiento y lamantenibilidad de una aplicación a lo largo de su ciclo de vida. Además, los desa-rrollaodres pueden ahora usar Compuware DevPartner Studio en conjunto conMicrosoft Terminal Services, aportando flexibilidad para que los desarrolladoresanalicen y detecten errors y cuestiones de rendimiento en aplicaciones mientrastrabajan remotamente.

Compuware también hizo una demostración de Compuware Vantage, un ser-vicio para la gestión de aplicaciones que ayuda a las organizaciones TI a gestionarel rendimiento de las aplicaciones desde la perspectiva de lo que más importa: elusuario final.

Compuware presentasoluciones para la

automatización delciclo de vida de las

aplicaciones basadasen .NET FrameworkCompuware presenta la integra-

ción de la automatización de prue-bas con Microsoft Visual Studio

2005 Team System; la version deCompuware DevPartner Studio 7.2

Professional Edition

Windows XP SP2 RC2 disponibleWindows XP SP2es una actualiza-ción de WindowsXP que incluyemejoras de seguri-dad como el nue-vo Windows Se-curity Center quecentralizará laconfiguración deseguridad y queincluye incluso protección antivirus; un nuevo firewallque reemplaza al actual ICF (Internet ConnectionFirewall) con políticas de grupo integradas en el ActiveDirectory; una nueva versión de RPC para proteccióncontra ataques en la red;un bloqueador de popups y ungestor de descargas en el también nuevo Internet Explorerjunto con mejoras de seguridad en el Outlook Express yen el Windows Messenger; un nuevo Windows Update;una remodelada protección de memoria para evitar loscomunes “overruns”; mejoras de seguridad en el WindowsMedia Placer; y otros cambios.

La RC2 (Release Candidate 2) de Windows XPSP2 ya está disponible y puede descargarse desde http://www.microsoft.com/technet/prodtechnol/winxppro/sp2preview.mspx

Service Pack 1 paraSQL Server ReportingServicesMicrosoft acaba de liberar el primer service pack paraSQL Server 2000 Reporting Services, que estará dis-ponible para los clientes de SQL Server 2000 libre-mente en la zona de descargas de la web, enhttp://www.microsoft.com/downloads/.Esta versión del Service Pack 1 de Microsoft SQLServer 2000 Reporting Services incluye correccionesde errores, mejoras en el rendimiento y otras mejorasen el funcionamiento. La lista de correcciones de esteservice pack puede encontrarla en:http://support.microsoft.com/?kbid=839796

Microsoft Virtual Server 2005 Release Candidate

Microsoft Virtual Server 2005, ya está en la fase Release Candidate(sólo para la versión inglesa) y estará disponible a lo largo de este año 2004.

Habrá dos versiones de Virtual Server, la edición Standard y laEnterprise, con similares características. La edición Standard soporta-rá hasta cuatro procesadores mientras que la edición Enterprise sopor-ta hasta 32 procesadores.

Este software está diseñado para permitir a los clientes ejecutarmúltiples sistemas operativos en un sólo equipo, por lo que es muy apre-ciado tanto por técnicos de sistemas como por desarrolladores por elahorro de costes que supone para emular distintos entornos de pruebas.

Más información: http://www.microsoft.com/windowsserversys-tem/virtualserver/evaluation/rceval.mspx

Page 8: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

(www.e-gallaecia.com) alcanza sumáxima actividad durante la celebración en Santiagode Compostela de la “Semana Internacional de lasTIC”, la primera semana de junio; este año ya en sucuarta edición. Del 31 de Mayo al 4 de Junio, en elForo e-Gallaecia, se han dado cita más de 500 asis-tentes, reuniendo a los más destacados expertos y pro-fesionales de referencia con el objetivo de ser Puntode Encuentro para la transmisión del conocimiento yentorno de reflexión.

En la “IV Semana Internacional de las TIC” serealizaron cuatro congresos diferentes que han con-centrado distintas Áreas de Conocimiento: Seguridady Legislación Tecnológica, Base de Datos y Progra-mación y Open Source y Movilidad, lo que hace que,cualitativamente, sea el Foro Tecnológico más impor-tante de España.

Por lo que respecta al Congreso de Base de Datosy Programación, destacamos la presencia de notablesponentes como Denis Pilipchuck de SUN ClinicalData Institute de Boston que nos ilustró sobre losaspectos de seguridad y desarrollo de .NET v.s. JAVA.Además Fernando Guerrero, junto con MiguelEgea y Eladio Rincón, de Solid Quality Learning,impartieron el primer Workshop práctico sobre Yukonque se ha hecho hasta ahora en el mundo (en palabrasdel propio Fernando), con más de 50 asistentes quetuvieron la oportunidad de disfrutar de las nuevas

características de la próxima versión de SQL Server.Cabe destacar también la intervención de MarinoPosadas, con la presentación “Premisas fundamen-tales para los desarrolladores en Longhorn” sobre lasnovedades que, desde el punto de vista de los pro-gramadores, incorpora Longhorn, la próxima versiónde Sistema Operativo de Microsoft. Pero no solo sehabló de tecnología de Microsoft, sino también delfuturo de la plataforma Java, con ponentes comoMonte Kluemper de Bea Weblogic, Gonzalo Mou-riño de IBM o Hugo de S-Tecno, además de unaJornada inaugural en la que se abordaron aspectoscomo las Bases de Datos documentales, o la fiabili-dad del Software.

Tuvimos la ocasión de charlar largo y tendido conCarmen Costilla y Jorge Cremades, de laUniversidad Politécnica de Madrid, que presentaronuna interesantísima visión de la Web Semántica, basa-da en una implementación real, “e-government: delSistema Parlamentario ‘SIAP’ a la Integración de ArchivosDigitales en la Web Semántica”, donde nos introdujolos conceptos de la Web Semántica, y la forma en queestos conceptos han sido llevados a la práctica en unasituación real, aplicable a la Administración Pública,y, concretamente, a la Asamblea de Madrid, y laGestión del Archivo Parlamentario. También noscomentó los aspectos más importantes respecto a loslenguajes y las ontologías que intervienen en la crea-ción de estos sistemas. Concluyó su exposición comen-tando los diversos aspectos a considerar en laIntegración de Archivos Digitales y las Ontologíaspara esos Archivos Digitales en la Web Semántica. Elproyecto que lidera, SGP (Sistema de GestiónParlamentaria), lleva en funcionamiento desde el año1999. En la actualidad se encuentra trabajando en losproyectos DAWIS-UPM (Digital Archive WebInformation System), EDAD-UPM (Entorno deDesarrollo de Archivos Digitales): (Consultas, persona-lización del perfil de usuario web) y Red de Excelenciade Bases de Datos en España.

Nos mantendremos atentos a los progresos deestos proyectos de investigación, e iremos informan-do de su progreso puntualmente.do

tNet

Man

ía<<

8

IV Edición de la “SEMANA INTERNACIONAL DE LAS TIC”

organizada por el Foro e-GALLAECIAPor primera vez en España hemos podido asistir a un workshop de Yukon

<< El Foro e-Gallaecia

dnm.directo.eventos<<

Page 9: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

Microsoft Ibérica y Microsoft ResearchCambridge celebraron conjuntamenteen Barcelona la segunda edición de lasJornadas Académicas Microsoft Research,con la participación de más de 190 pro-fesores e investigadores de más de 39universidades y centros de investigaciónde España y Latinoamérica.

Según Microsoft Ibérica, “la orga-nización de estas jornadas en España seenmarca en el contexto de la apuesta quela compañía mantiene por la moderni-zación del país y por un drástico aumen-to de la productividad, que tiene que vercon un verdadero impulso innovador.Actualmente, España invierte en I+D+ila mitad de la media europea, lo queredunda en un desfase de la competiti-vidad de nuestro país con respecto a lasde otros países.”

“España necesita una ‘explosión’ ensu capacidad de innovación si quiere serrealmente un país competitivo y moder-no”, ha declarado Rosa García, conse-jera delegada de Microsoft Ibérica,quien hizo la introducción a las jorna-das. Y añade que “el hecho de que porsegunda vez celebremos en España estasjornadas con Microsoft Research de-muestra nuestro apoyo al esfuerzo inno-vador, divulgador y formativo que estepaís tiene que realizar para poder des-

plegar todo su potencial y ocupar elespacio que realmente le correspondeen el ámbito europeo”.

Ya en su introducción al evento,Rosa hizo hincapié en la investigacióncomo rasgo diferenciador de calidad y

prestigio entre universidades, así comoel círculo “virtuoso” que estos años seestá creando entre Microsoft/MicrosoftResearch y las universidades, dondeambas entidades comparten ideas, ydonde las universidades aportan el talen-to de los estudiantes y Microsoft apor-ta los programas y los recursos necesa-rios para la docencia y la investigación.

La conferencia tuvo lugar en elHotel Catalonia Barcelona Plaza y enel Convent des Angels y se trataron tan-to los aspectos de actualidad relaciona-dos con la docencia y la investigacióncomo la infraestructura, los sistemas y

las herramientas para el desarrollo eimplantación de aplicaciones distribui-das y orientadas a servicios.

Las Jornadas Académicas MicrosoftResearch 2004 constituyeron una oca-sión única de compartir puntos de vis-

ta, cuestiones e inquietudes con losinvestigadores de Microsoft Research ylos ingenieros de Microsoft Ibérica yMicrosoft Corporation, aparte de des-cubrir en detalle algunos conceptos y suimplementación más concreta en laoferta tecnológica de Microsoft actualy de los próximos años.

Las herramientas de desarrollo deMicrosoft hasta no hace mucho no hantenido un lugar preferente entre losinvestigadores, ni tampoco entre losdocentes de las universidades; pero eltrabajo realizado desde MicrosoftIbérica liderado por Xavi Pey y porBeatriz Ordóñez, posiblemente des-de la aparición de la plataforma .NET,está dando unos resultados verdadera-mente espectaculares, cambiando estasituación de forma drástica. Existenmuchos e interesantísimos proyectosde investigación usando la plataforma.NET en marcha en varias universi-dades españolas. Por ello, en el núme-ro anterior de dotNetManía creamosla sección dnm.universidad.net en la queesperamos poder presentar de la manode sus autores a algunos de ellos másadelante.

Según la compañía, “estas jornadassuponen una pieza importante dentro dela inversión en programas académicos

que Microsoft Ibérica viene realizandodesde hace más de cuatro años, que setraducen en más de 150 departamentossuscritos durante este curso al progra-ma de MSDN Academia Alliance para eluso de software de Microsoft; la forma-

dotN

etM

anía

<<

9

II Jornadas Académicas Microsoft ResearchDocencia e investigación en un mundo de aplicaciones orientadas a servicios

Barcelona 24 al 26 de mayo de 2004

Page 10: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

ción de más de 300 profesores en las tec-nologías de Microsoft; la participaciónen nueve programas de postgrado y mas-ter con .NET con universidades; la asis-tencia de más de 13.500 estudiantes enmás de 80 conferencias realizadas o laparticipación de más de 30 equipos deestudiantes en la reciente edición delconcurso de programación Imagine CupEspaña 2004. A nivel mundial, la com-pañía invierte 6.900 millones de dólaresen I+D+i, lo que representa el 20% desu facturación y quiere compartir dichaexperiencia con los más prestigiososinvestigadores internacionales.”

Contenidos de las jornadasLos contenidos de las jornadas se

presentaron en español o en inglés, dadala naturaleza de los ponentes. Destaca lapresencia especial de Stephen Emmott,Director de Relación con Universidades deMicrosoft Research Cambridge, HugoZaragoza y Pablo Rodríguez, ambosinvestigadores de Microsoft Research Cam-bridge, Ivan Medvedev, CatherineHeller y Adam Wiener, de MicrosoftCorporation, y reconocidos expertos yprofesionales de la industria como elgran Rafal Luckawiecki, Director delProject Boticelli Ltd, o Fernando Gue-rrero (este hombre está en todas par-tes…), Fundador y CEO de Solid QualityLearning.

Primer día:“Innovación para el futuro”

El primer día, Rafal Luckawieckipuso en perspectiva la visión de la infor-

mática en los próximos años y StephenEmmott presentó a la comunidad aca-démica las principales reflexiones sobrenuevos modelos de relación con las uni-versidades.

A continuación, dada la importan-cia estratégica que la seguridad tienesobre las nuevas arquitecturas de desa-rrollo, Ivan Medvedev, que fue miem-bro del equipo de seguridad de CLR yque actualmente está con el equipo deSecure Windows Initiative, ofreció unresumen de la infraestructura de segu-ridad .NET y futuros desarrollos enesta área.

Asimismo, David Carmona discu-tió el potencial y las principales líneasde innovación incorporadas en la nue-va versión de Windows “Longhorn”como marco para el desarrollo de la nue-va generación de aplicaciones orienta-das a servicios. David habló tambiénsobre Indigo y sobre las especificacio-nes WS*.

Segundo día:“Gestión de datos, informacióny sistemas distribuidos”

En el segundo día FernandoGuerrero describió las principalescaracterísticas que formarán parte deSQL Server 2005, no sin antes dar suparticular visión sobre las titulacionesuniversitarias y el mundo real (vea suartículo de opinión en el número 2 dedotNetManía), lo que provocó cier-to malestar a parte de la audiencia —comocabía esperar, Fernando—; CatherineHeller que nos hizo una vertiginosa

presentación sobre las novedades deVisual Studio 2005, incluso de algunasque se habían presentado hacía menosde 24 horas en San Diego en el Tech-Ed americano que se estaba celebran-do en esos instantes, y de los que, pormotivos obvios, ni siquiera pudo pre-pararse los PPTs correspondientes;Adam Wiener presentó los siguientespasos en la gestión de datos, el alma-cenamiento o la recuperación en lospróximos sistemas de información.

Asimismo, Pablo Rodríguez ana-lizó los principales criterios para distri-buir contenidos en ambientes móvilesy redes wireless y Hugo Zaragoza laslíneas de investigación relacionadas conla recuperación de información y elaprendizaje computacional.

Tercer día:“Marco para la discusión:docencia e investigación con .NET”

La plataforma Windows yMicrosoft.NET son una magnífica basepara la docencia y la investigación uni-versitaria en áreas como la programa-ción o la ingeniería del software. Enuna doble sesión paralela seguida desendas mesas redondas en las que par-ticiparon algunos de los académicosinvitados, se compartieron las expe-riencias y puntos de vista sobre los pro-gramas de compartición de códigofuente como .NET “Rotor” de Micro-soft con las universidades, la experien-cia de los trabajos de los equipos deinvestigación y las principales líneas detrabajo en esta área.

dotN

etM

anía

<<

10

dnm.universidad.net<<

EMEA Interships 2004

EMEA Interships es el programa de Microsoft que posibilita que estudiantes de los últimos años de carreras técnicas de universidadesde Europa,Oriente Medio y África tengan la oportunidad de trabajar durante tres meses de verano en el Campus de Investigación y Desarrollode Microsoft en Redmond (EEUU), la sede central de la compañía.

En este evento conocimos a Ricardo Valera, estudiante español de la universidad de Sevilla, seleccionado para unirse este verano al equi-po de desarrollo de Windows CE en Redmond (USA) donde pasará 3 meses, según el programa de Microsoft EMEA Interships que posibili-ta a los estudiantes de los últimos años de carreras técnicas de universidades de Europa, Oriente Medio y África tengan la oportunidad detrabajar durante tres meses de verano en el Campus de Investigación y Desarrollo de Microsoft en Redmond (EEUU), la sede central de lacompañía.

Ricardo, o “phobeo” como se le conoce en el ambiente informático, es uno de los cientos de estudiantes españoles que ha enviado sucurrículo a Microsoft para participar en el EMEA Summer Program 2004. Después de superar distintas entrevistas y pruebas técnicas en lasubsidiaria española, fue preseleccionado para competir con otros cinco estudiantes españoles y 56 de diferentes países de Europa, OrienteMedio y África, en la etapa final del proceso que se desarrolló en París, con entrevistadores de Microsoft Corporation.

Ricardo quizá nos escriba unas líneas desde el mismísimo Redmond para contarnos sus experiencias de un universitario dentro de ungrupo de desarrollo de Microsoft.

Page 11: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

11

¡un claro ejem-plo de engaño! Somos seres racionalesque categorizamos la realidad confor-me a nuestra peculiar manera de obser-varla y comprenderla, así, donde hay uncontinuo, nuestra razón pone medidas,mitades, divisiones, es decir, todo aque-llo que le ayuda a comprender mejor,pero que con facilidad nos lleva a caeren el error. Lógicamente, Aquiles alcan-zará inmediatamente a la tortuga pormás que nosotros nos empeñemos enpensar que está primero recorriendo lamitad de la mitad de la mitad…

La historia del mundo tecnológicoestá llena de marañas engañosas de estaíndole. Como todas las cuestiones cla-ramente insertadas en el ámbito de losintereses económicos, la objetividad sepierde entre el conjunto de fuerzas quesólo intentan imponer su punto de vis-ta con la finalidad de dominar el mer-cado. Pocos ámbitos humanos están tansujetos a principios irracionales y anti-democráticos, como el de la evolucióntecnológica. Buscar lo objetivo, la ver-dad en esa red de subjetividades intere-sadas es una tarea de gigantes para laque no sé si estamos lo suficientemen-te preparados.

Pero como probablemente laVerdad con mayúsculas se nos escapapor inalcanzable, intentaremos abordaralgunas pequeñas verdades con minús-culas que nos ayuden, por lo menos, aorientar el camino y a no perdernos enuna senda tan oscura y compleja deseguir. Y como para perseguir la ver-dad, el mejor método es desvelar elengaño que la cubre, lo que haremos eneste artículo será dedicarnos a buscaralgún que otro engaño de esos miles quese nos cuelan desapercibidos cada día yse nos venden como verdades absolu-tas, cuando a poco que rasques debajode los mismos descubres que solo hayfalsedad sustentándolos. Hoy el velo loquitaremos sobre la opinión sumamen-te difundida de que el software libre, elOpen Source, Linux o cómo queremosreferirnos a ello representa un eslabónevolutivo de gran importancia en elmundo tecnológico actual.

El origen de la cuestión En este artículo no indagaré dema-

siado sobre cuestiones del tipo si es másrentable para una empresa el software libreque el de pago, si es más eficaz gestionar

como código compartido el desarrollo deun sistema operativo u otras similaressobre las que cada día se vuelcan, pordefensores y detractores, multitud deargumentos en la prensa especializada.

Antes que esto, procuraré ir a losfundamentos teóricos del asunto, esdecir, al porqué se justifica intelectual-mente la apuesta por el software libre ysi en dicha fundamentación se escon-den razones de peso u opiniones, pre-juicios y engaños racionales al estilo dela paradoja con la que dábamos comien-zo al artículo.

En general, podemos definir lassiguientes cuatro afirmaciones comoprincipios en que se sustenta la idea delsoftware libre:1. El software libre nos independiza de

la sumisión al fabricante tradicionalde software, en este sentido da a lasempresas o a los estados que contra-tan este tipo de software una libertadde elección mayor.

2. El software libre es más democráti-co en su concepción, ya que está man-tenido por la propia colectividad dedesarrolladores sin que los interesesempresariales pongan mácula algunaen el mismo.

Adversus Linux

Por Antonio QuirósGeneral Area ManagerAlhambra-Eidos

Llevamos buscando la verdad desde hace siglos. Los hitos en este largo camino son infinitosy a cada paso dado parece que, como a Aquiles1 con su tortuga, nos quede un mundo inal-canzable por conseguir.Así somos las personas; caemos de continuo en el engaño; una redde prejuicios, informaciones falsas, opiniones infundadas unas veces e interesadas otras, nosenvuelve de forma que rara vez podemos observar la luz entre esa maraña de tinieblas.

Aquiles y su tortuga,<<

1 Se trata de la vieja paradoja del pensamiento griego sobre Aquiles y la tortuga. Según la misma, si Aquiles, el mejor corredor entre los griegos, yuna tortuga iniciaran una carrera y Aquiles diera ventaja a la tortuga, nunca la alcanzaría, ya que para hacerlo primero tendría que recorrer la mitaddel camino entre ambos; para recorrer dicha mitad debería recorrer primero la mitad de la misma y así sucesivamente hasta el infinito, lo quevendría a demostrar que Aquiles nunca alcanzaría a la tortuga.

Page 12: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

3. El proceso de creación y manteni-miento del software libre es más ágilen tanto que existe una amplísimacolectividad de personas que coope-ran para el desarrollo del mismo.

4. Las empresas tienden a apropiarse deltrabajo de los creadores. Apostar porel software libre es, por tanto, másprogresista.

Una aproximación históricaHace años se suscitó en el mundo

tecnológico el problema de los están-dares. En aquel momento (años 70-80)los fabricantes de sistemas poseían mer-cados esclavos, ya que cada uno cons-truía como un mundo aislado su propiainfraestructura. Cuando alguien nece-sitaba una pieza nueva siempre tenía queacudir al único suministrador. El gobier-no americano comenzó entonces a pro-mover la determinación de estándaresque fuesen de obligado cumplimientopara la industria de forma que los esta-dos y las empresas no tuvieran su liber-tad hipotecada por los fabricantes de sis-temas. De este modo, grandes mono-polios como el de IBM cayeron, ya quepara que sus sistemas pudieran ser com-prados debían cumplir ciertos estánda-res y si los cumplían otros podían com-petir con ellos. Esta defensa de lo públi-co frente a los intentos monopolizado-res de lo privado resulta altamente legí-tima e indispensable para garantizar lalibertad económica de los estados, de lasempresas y de los ciudadanos.

Sin embargo, la promoción de losestándares que realizan entidades públi-cas como ANSI, ISO, IEEE en ningúnmomento trataba de restar protagonis-mo tecnológico a las compañías priva-das, ya que se concebía que el únicomodo organizado, razonable y previsi-ble de construir software y sistemas com-plejos era hacerlo a través de las empre-sas que poseen un buen grado de expe-riencia al respecto, así como el pragma-tismo económico suficiente como parahacer de ello un proceso de negocio, esdecir, hacerlo como se abordan todasestas cuestiones en nuestra sociedad. Lasuniversidades investigan, promueven,enseñan, pero ¿alguien a oído que algu-na soporte complejos procesos empre-sariales? Zapatero a tus zapatos.

Pero, ya en los 80 se da el siguientepaso. Ahí aparecen las iniciativas parafomentar el software libre, aunque ladifusión fuerte de este ideario se pro-duce en los 90. Se parte conceptual-mente de la idea, claramente expresadapor Richard Stallman, padre de GNUde que la libertad sin la capacidad demodificar cualquier programa de soft-ware es una libertad incompleta. Así,pues, se da el salto de dictar estándarespara que los fabricantes los cumplan aconsiderar que el derecho a la propie-dad que los fabricantes de software ejer-cen sobre sus productos atenta igual-mente contra los intereses de los usua-rios de los mismos. El mundo Linux sur-ge ahí desde Unix y en este puntocomienza una de las guerras tecnológi-cas que están marcando nuestra épocay frente a la cual casi todos terminantomando partido.

Sacerdotes, iluminados,magosy revolucionarios

Esta retahíla de términos marca elperfil del defensor a ultranza del soft-ware libre. En un mundo como el nues-tro donde las causas políticas han idomuriendo; donde los viejos ideales y lasutopías sociales ya no tienen una vigen-cia real; donde la televisión y la supe-restructura mediática en general diri-gen la vida de los ciudadanos, pareceque muchos defensores del softwarelibre están centrando en esta causa elímpetu que tradicionalmente sueleponerse en las causas religiosas, políti-cas o sociales.

Me llama la atención la vehemenciacon la que se aborda el discurso antiem-presarial. Me llama la atención y me pre-ocupa. Así, por ejemplo, Stallman dicetextualmente en una entrevista conce-dida a nuestro compañero MarinoPosadas que las empresas usan su poderpara empobrecer a la mayoría de la gente yrecoger mucho dinero para los patrones2.

Con esto se niega la piedra de toquede nuestra organización económica ynos acercamos a teorías iluminadas taninnovadoras como peligrosas. Nuestromundo reciente sólo ha conocido un parde formas de organizar la actividad eco-nómica, una la capitalista más o menosmoderada por la intervención estatal yotra la plenamente estatalista que en lospaíses del socialismo real se practicaba.La realidad nos ha venido a demostrarque la primera ha sido capaz de crearlos mecanismos innovadores suficientes

como para hacer evolucionar a la socie-dad mientras que la segunda sólo haconducido a burocracias absurdas quehan traído de todo menos dinamismosocial, democracia y creación libre.

Así, pues, se viene a defender que lacolectividad de desarrolladores serácapaz de desarrollar y mantener cual-quier software que la sociedad necesite.Desde mi punto de vista este principiorepresenta como ninguno la prevalen-cia del modelo ciego e irracional delmercado como regulador de toda la acti-vidad económica. Pensar que variosmillones de desarrolladores sin organi-zación ninguna serán capaces de reali-zar dicha función y encargarse del soft-

dotN

etM

anía

<<

12

dnm.opinion<<

…me siento intranquilo al pensar que los complicados procesos públicos y privados que garantizan mi salud,

mi enseñanza, la protección de mis derechos como ciudadano, etc. se encuentran en manos

de personas privadas sin la organización y el rigor adecuado

2 Puede ver la entrevista completa en AlgoritmoDigital.com y en ElAveFenix.net

Page 13: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

ware que regulará toda nuestra activi-dad, me deja bastante preocupado. Eldesarrollo económico y tecnológico lollevan a cabo las empresas, me sientointranquilo al pensar que los complica-dos procesos públicos y privados quegarantizan mi salud, mi enseñanza, laprotección de mis derechos como ciu-dadano, etc. se encuentran en manos depersonas privadas sin la organización yel rigor adecuado.

Administración pública y software libre

Uno de los entornos donde más hacalado la apuesta por Linux es la admi-nistración pública, tanto en España,donde tenemos sonadas experienciascomo la del Linex en Extremaduracomo en otros países de la UniónEuropea, como por ejemplo, Francia.Por debajo del análisis que los gobier-nos hacen para apoyar estas iniciati-vas se encuentra la lucha antimono-polio que se sigue contra Microsoftdesde hace tiempo. Particularmentepienso que si no se hubiera dado laactual situación de mercado en la cualsólo una compañía detenta a nivelmundial el monopolio de los sistemasoperativos, el apoyo al software librepor parte de los gobiernos no tendríatanto ímpetu. Lo que sucede, desdemi punto de vista, es que existen algu-nos errores conceptuales notorios a lahora de seguir esta política.Personalmente mantengo la hipótesisde que Linux sólo tiene futuro desdela apuesta que las grandes compañíashagan por el mismo. Es decir que unsistema operativo mantenido sindemasiado orden ni concierto por elcolectivo de los usuarios del mismo nopuede ser el software en que los esta-dos confíen el sustento de sus siste-mas de información, su seguridad, etc.Hacer que sea el propio estado el quelo mantenga, tal como se hace conLinex, me parece volver a tiempos ysistemas ya superados en la gestión delo público. Sólo las empresas poseenla necesaria organización de procesos,capacidad inversora y tensión a la ren-tabilidad como para hacer de este pro-ceso tecnológico el correspondienteproceso de mercado.

Por todo ello creo que con Linuxvolveremos a tener un ejemplo sobre lamesa del conocido mito del eternoretorno. Es decir, primero surgen cosascomo el confuso ideario del softwarelibre, de ahí pasamos a cosas algo menosrevolucionarias como la actual concep-ción de Linux sustentada como códigoabierto y, a dos pasos, está que IBM,Novell, etc. es decir las compañías quepueden obtener beneficio del procesoapuesten claramente por él, poniendo asu gente a investigar y trabajar. De talmodo, en un momento habremos asis-tido al crecimiento de una nueva estra-tegia y estructura empresarial con elapoyo de determinados estados e insti-tuciones que tiene como finalidad arre-batar cuota de mercado al actual opera-dor mayoritario que es Microsoft. Portanto, algo que nace como una apuestarevolucionaria en el mundo del softwa-re terminará convirtiéndose en la opor-tunidad de negocio de algunos que lousarán para sobreponerse a otros en elmercado, pero eso sí esta vez se hará conel aval de ciertos organismos públicosque, lo quieran o no, están ayudando aesa situación en aras de defender unaidea progresista de libertad que, desdemi punto de vista, no es factible de ins-trumentarse más que con un fuerte apo-yo empresarial por detrás.

Algo de sensatez en la locuraPor otro lado, no todas las voces tec-

nológicas autorizadas están a favor delOpen Source, así, por ejemplo, VintonG. Cerf, uno de los padres de Internety Premio Príncipe de Asturias 2002, enuna entrevista a la sección El Navegantedel diario El Mundo del 14 de mayo, antela pregunta de lo que opina sobre el soft-ware libre, responde: Tengo sentimientosencontrados. Es muy útil en la medida quepuedes acceder al código fuente, eres capazde comprenderlo y puedes encontrar vulne-rabilidades (‘bugs’). La pregunta es ¿quiéntiene tiempo para hacer eso? La mayor par-te de los usuarios no. Además, el softwarede código abierto no garantiza al 100% lamejor calidad. Si yo pago por algo, al menossé a quién rendir cuentas si el programafalla (...). Si yo pago, puedo siempre pedirmás, y si tengo un problema, sé contra quiénacudir. Creo que el software libre está bien

para algunos campos, como el mundo aca-démico. En el mundo de los negocios, sólo enalgunas ocasiones es una buena idea.

En resumen…Pues me parece que:

a) El punto de partida de defensa de lalibertad pública y privada que subya-ce al apoyo al software libre es erró-neo. Los estados pueden realizardicha defensa desde posiciones máspragmáticas, tales como fomentar laadopción de estándares legales.

b) Dejar de sustentar la tecnología enlas empresas para pasar a sustentarlaen colectivos anárquicos no pareceque contribuya a mejorar la calidadde nuestros procesos de gestión.

c) Tras la apuesta por Linux existen inte-reses empresariales. No estamos anteun ideario puro, sino que detrás tene-mos a compañías esperando sacarprovecho del auge del sistema. Estoque es lícito en sí mismo, como par-te de la competencia empresarial, nodebería contar con el apoyo añadidode los organismos públicos.

d) El trabajo vale dinero. No podemospensar que desarrollar software esalgo que podemos hacer de formagratuita y generosa a fin de mejorarel nivel de libertad de nuestra socie-dad. Los autores de cualquier cosa,sea artística o funcional (siguiendo ladefinición de Stallman) tienen elderecho a cobrar por su trabajo.

Por último reseñar que quizá lo quenuestro mundo deba hacer sea redefi-nir el rol que el software y su fabrica-ción deben tener en nuestra sociedad.Pero esto debe hacerse desde posicio-nes tranquilas y reflexivas que garan-ticen que no atentaremos contra pila-res elementales de nuestra sociedadcomo el respeto a la autoría intelec-tual, el hecho de que el trabajo valedinero, el equilibrio entre la defensade lo público y lo privado, etc. Y sobretodo que lo hagamos desde una ópti-ca de buscar lo verdadero fuera de lasfalsedades y distorsiones en que lacomunicación humana cae. Es decirque, lo queramos o no, Aquiles gana-rá la carrera por más ventaja que pue-da darle a su mítica tortuga.

dotN

etM

anía

<<

13

dnm.opinion<<

Page 14: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

14

de nuevas tecnologías tú te defi-nes a ti mismo como un “e-Visioneer”. ¿Podrías defi-nirnos tu propia definición?

Bueno, hace unos dos años, yo solía definirme comoun e-Visioneer en el sentido de buscar lo que la tec-nología apuntaba como inmediato e intentar anticiparesas impresiones en mis conferencias y artículos. Noera solo por el afán vidente, sino, más bien, como par-te de un asesoramiento que podía ofrecer a aquellasempresas o profesionales que no quieren equivocar elcamino y tener que dar marcha atrás, con los costes,tanto humanos como económicos que eso conlleva.

Por eso, en cierto modo, mi trabajo era el de hablarde cosas poco convencionales, o que todavía no exis-ten, pero de las que tenía la clara sensación de que seconvertirían en realidad en el futuro inmediato. Algoasí como un escritor de ciencia-ficción, con la dife-rencia de que el escritor de ciencia-ficción se adentramucho en el futuro y mi visión está mucho más cer-cana a la realidad. Podrías llamarme un “escritor deciencia-ficción muy pragmático y realista”.

De cualquier forma, lo cierto es que, en los añosen los que yo hacía esto, que coincidieron con los dela burbuja de las “punto COM”, se requería una enor-me cantidad de innovación, simplemente para soste-ner el crecimiento de la burbuja. Cuando la burbujaexplotó, la gente se volvió más conservadora, y con-secuentemente, mi trabajo cambió también, para cen-trarse principalmente en la estrategia y las personasque evalúan esa estrategia.

Es curioso, porque —por un lado— se te recono-ce como un “anticipador de tecnologías”, y por el otro

eres bastante respetado en el entorno empresarial,poco proclive a las elucubraciones, aunque éstas seansensatas, e incluso, inmediatas en el tiempo. ¿Cómoconsigues ese equilibrio?

Eso es exactamente lo que hago y también quizálo que mejor define lo que hago. Honestamente, nisiquiera tengo nombre adecuado para describirlo. Porun lado es un consultor estratégico y por otro lado esanticiparse a las situaciones, con sensatez. ¿Cómo lohago? Pues no lo sé: desde pequeño me ha interesa-do el futuro de la ciencia y la tecnología, y cómo seusarían las cosas. Encontrar la pregunta a esas cues-tiones es una especie de “leit-motiv”.

En muchos países también, pero en España en par-ticular, arrastramos una especie de miedo atávico a lainnovación tecnológica, que hace que aquellos queson responsables de las inversiones no se muestrenmuy propensos a invertir en I+D, ni a adoptar nin-guna nueva tecnología hasta que la presencia de éstaes tan evidente que amenaza con quedarlos obsole-tos. ¿Cuál sería tu mensaje, al respecto?

La respuesta a esto es muy sencilla: Estrategia.¿Qué significa exactamente? Significa comprendercómo las innovaciones y estas pequeñas visiones oanticipaciones del futuro inmediato, pueden alterartus operaciones del día a día. Una compañía quesobrevive, es una compañía que tiene estrategias dealgún tipo.

¿Quieres decir que si piensas a medio plazo conla suficiente precisión y conocimiento de causa, dejade ser una elucubración para convertirse en el pasoprevio a la acción, de la misma forma que hacemos en

Entrevista a Rafal Luckawiecki

Por Marino PosadasMVP Visual Developer C#Alhambra-Eidos www.elavefenix.net

<<

En el pasado evento sobre investigación de Microsoft Research,organizado en el marco de lasII Jornadas Académicas Microsoft-Universidad,tuvimos ocasión de charlar con uno de los evan-gelistas de tecnología más populares del momento.Luckawiecki,es ponente habitual en los Tech-Ed, PDC y demás congresos a nivel mundial y fue nombrado como mejor conferenciante delpasado Tech-Ed 2003 de Barcelona.Como divulgador de tecnologías Microsoft,había sido pro-fesor mío de MSF (Microsoft Solutions Framework) en París, y afirmó que me recordaba per-fectamente…lo que indica mucho de su grado de amabilidad y cortesía.

Como divulgador

Page 15: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

15

dnm.directo.entrevistas<<

el Analisis y Diseño de Aplicaciones,antes de pasar al desarrollo?

Exacto. Si planeas lo suficientementebien, es perfecto para propósitos prác-ticos. Es ideal para este año o quizá par-te del siguiente. Pero la planificación amedio plazo, requiere posiciones másflexibles, más estratégicas y menos liga-das a ideas concretas. Flexibilidad, seríala palabra. Podríamos recordar aquí latríada fundamental: Alcance, Visión yMisión. El alcance se refiere a un pro-yecto individual; la Visión, a series deproyectos que pueden ser abordados deforma similar, con tecnologías afines, ymedios parecidos dentro del marcoempresarial; y la Misión es una plata-forma que aglutina todas las visionesteniendo en cuenta lo que tienen encomún. De la misma forma, visión esuna forma de planificar la estrategia. Portanto, mi consejo a cualquier organiza-ción que quiera sobrevivir y estableceruna planificación a 6 ó 7 años vista, esque expresen su estrategia en términoscomprensibles.

Una vez que eso se ha conseguido,hay que pensar en la capacidad de adap-tación. Esto se ve en muchas compañí-as, por ejemplo las compañías aéreas.British Airways está haciendo un traba-jo de adaptación espléndido y sus resul-tados mejoran, mientras que existencompañías en USA que están teniendotremendas dificultades a este respecto.Creo que la diferencia entre las dos fuela comprensión de la visión y ser capa-ces de adaptarse. Ya lo dijo Darwin, “nosobrevive el más fuerte sino aquel quetiene la mayor facilidad para adaptarseal cambio”.

Otra de tus áreas de interés es lacriptografía, y recuerdo una charla tuya

al respecto, a la que asistí el pasadoTech-Ed en Barcelona. ¿Crees que laúnica forma de liberarse de todos esosefectos colaterales indeseables deInternet (virus, spam, spyware, etc…)es mediante la criptografía?

Creo que sí, siempre que se hagacombinándolo con otras tecnologías queaporten aquello que la criptografía sola-mente no puede dar. Pero la criptogra-fía por sí misma no resuelve el proble-ma, ya que se trata principalmente deuna teoría. Por ejemplo podríamosrequerir que cada mensaje estuviera fir-mado digitalmente y con eso se termi-narían el 99% de los problemas con el“spam”. Pero esto no es todavía la solu-ción en el momento en que nos encon-tramos, por tanto la criptografía puedeayudar, pero se requieren funcionalida-des en el sistema de correo que no estánpresentes en su totalidad al día de hoy.Es una cuestión de balance entre acce-

sibilidad y seguridad. Cuanto más acce-sible, menos seguro y viceversa.

Otro de los problemas es que losmismos usuarios no consideran algunosvirus como tales. Me estoy refiriendo al“spyware” o al “adware”. La respuestaante esto, suele ser, “bueno, si no memolesta mucho, lo dejo ahí”. ¿Qué tie-nes que decir al respecto?

Para mí, estamos hablando a todoslos efectos de lo mismo. Cuando un pro-grama se toma atribuciones sobre tumáquina o informa de la manera queusas tu ordenador a otro sin tu consen-timiento, eso es, a todos los efectos unvirus. De hecho existen varias compa-ñías fabricantes de software antivirus,como Symantec, que han incluido laposibilidad de detectar ese tipo de soft-ware y eliminarlo. Es más, algunas com-pañías productoras de adware comoGator, han sido llevadas a los tribuna-les americanos y condenadas por estetipo de prácticas. Y la tecnología mejo-ra constantemente para su detección yeliminación.

Por otro lado, es también un proble-ma de legislación. El CongresoNorteamericano y la Asociación delComercio de los EE.UU están toman-do cartas en el asunto y están promul-gando leyes para endurecer notablementelas penas asociadas a este tipo de prácti-cas (el spam entre ellas), así que soy opti-mista acerca del futuro de estas “plagas”.

Una de las ramas de la investigaciónque más me interesan es la Computación

Rafal Luckawiecki

Estrategia. ¿Qué significa exactamente? Significa comprendercómo las innovaciones y estas pequeñas visiones

o anticipaciones del futuro inmediato, pueden alterar tus operaciones del día a día. Una compañía que sobrevive,

es una compañía que tiene estrategias de algún tipo.

Page 16: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

16

dnm.directo.entrevistas<<

Cuántica. Últimamente se están empezando a divulgarimportantes logros al respecto, sin embargo, no hasmencionado esa posibilidad en tu charla. ¿Es quizás porque lo ves algo demasiado lejano en el tiempo?

Verás, la razón por la que no he mencionado laComputación Cuántica, es por que quería centrarmeexclusivamente en las cosas que pueden interesarle alo que llamamos ahora un “trabajador del conoci-miento” (knowledge worker). Y también porque que-ría que la charla se circunscribiese a los próximos 10años como máximo. Si hubiéramos estado hablandoa más largo plazo, por supuesto que creo que es elfuturo innegable de la computación. Pero creo queno podremos ver máquinas reales funcionando al nivelde las que tenemos ahora hasta dentro de 20 ó 30 años.Eso es lo que creo, por el momento.

Sin embargo, hay que decir que sí que existen apli-caciones para las que el concepto de “quanta” estásiendo utilizado en estos momentos, como sucede conla Criptografía Cuántica. Desde Noviembre del añopasado, puedes comprar dispositivos que utilizan esteconcepto. Pero no es exactamente lo que la genteentendería por Computación Cuántica…

¿Quieres decir que utilizan conceptos que se vier-ten en la Mecánica Cuántica, pero que no se puedehablar realmente de Computación Cuántica en el sen-tido global del término?

En realidad utilizan ciertos efectos de laElectrodinámica Cuántica, en lo que se refiere a laamplitud de la probabilidad, etc. Pero la mayoría deestos trabajos se basan en la posibilidad de polarizarfotones de tal forma que cualquier intento de lectura(no digamos ya de modificación de la información),produce unas variaciones en éstos que son detectadaspor el receptor, rechazando el paquete enviado.

Yo diría que la Computación Cuántica se basa enrealidad en la posibilidad de codificar un problema en

términos de una Función de Onda, y permitir que elmecanismo cuántico asociado con él, lo resuelva (entérminos casi instantáneos de tiempo, eso sí). Peroveo problemas prácticos en el sentido de que todavíano tenemos una compresión total de la teoría.

En tu charla has hablado también de nuevas for-mas de almacenamiento de la información, justo enun momento en el que acaba de aparecer un tipo dememoria holográfica de un centímetro cuadrado y elgrosor de una oblea que almacena 1Gb. ¿Cómo pien-sas que puede afectar esto a la forma que utilizamoslos dispositivos móviles?

Muy interesante. Sí, como mencioné en mi char-la, creo que la tendencia es que exista una CPU en cadadispositivo en el futuro. Pero no creo que la tenden-cia sea que almacenemos grandes cantidades de infor-mación en los dispositivos, sino, más bien, que seamoscapaces de acceder desde cualquier dispositivo a lainformación almacenada en formas diversas. Creo quela comunicación va a ser más importante que el soft-ware en sí. De forma que lo más probable es que ten-gamos un mecanismo de almacenamiento distribuidoen el que la información se encuentre en cualquier par-te, pero una forma más o menos estándar de accedera esa información según la necesitemos.

Bien, Rafal, no te entretenemos más, sabemos quetienes un compromiso ahora mismo, pero ¿podríasanticiparnos algo de tus ponencias para el próximoTech-Ed de Ámsterdam?

Tengo una ponencia sobre Criptografía, y luegouna “representación especial”, al estilo de obra de tea-tro, junto a Clemens Vasters y Pat Helland, sobre ser-vicios Web, en el que estaremos disfrazados hacien-do la representación. Creo que será divertido.

No nos lo perderemos. Muchas gracias por tuscomentarios y hasta la próxima.

Nos vemos en Tech-Ed, pues.

Marino Posadas y Rafal Luckawiecki

Page 17: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

vamos a ver qué nos ofrece .NETFramework a la hora de enviar emails haciendo usodel namespace System.Web.Mail. Los puntos quevamos a tratar son los siguientes:

• Enviar texto plano teniendo el servidor decorreo en la red local.

• Enviar un email desde una aplicación Desktop,autentificándonos en el servidor de correoremoto.

• Adjuntar archivos a nuestro correo.• Formatear emails con HTML.• El formato MIME.

System.Web.MailSystem.Web.Mail (SWM) es el namespace que

usa .NET Framework para enviar emails.SWM tiene tres clases:• MailMessage: Permite crear y modificar los

contenidos de un email.• MailAttachments: Con ella se pueden adjun-

tar archivos a un correo electrónico.• SmtpMail: Clase con la que enviaremos los

emails a nuestro servidor de correo.

Enviando texto plano en un servidor de correo local

Este es el ejemplo más tonto que siempre fun-ciona. Nos servirá de base para el resto de casos.

Partimos de que tenemos nuestro servidor decorreo a mano y que no necesitamos autentificarnos.

El código de la aplicación de consola que envíaun email lo podemos ver en el Fuente 1, (para quela aplicación funcione debemos añadir la referenciaa System.Web, ver Figura 1). Es muy sencillo: crea-

mos un nuevo mensaje, le decimos las direccionesde correo origen y destino, rellenamos cabecera ycontenido del mismo, y con SmtpMail.Send lo envia-mos.

Utilizando un servidor SMTP remotoEn una aplicación ASP .net en producción es

normal contar con que el servidor de correo lo vamosa tener en la red local, eso no tiene porque pasar si

Enviando emails con .NET

Por Braulio DíezSolutions DeveloperAvanade

En todos los libros de ASP .net suele haber un ejemplo, de 4 líneas de código,sobre cómo enviar un correo electrónico con texto plano suponiendo que elservidor de correo se encuentra en la misma máquina o red local… ¿y si que-remos hacer algo más? ¿Tenemos que comprar un componente más potente?

En este artículo<<

dotN

etM

anía

<<

17

<<

System.Web.Mail un namespacecon mala fama…

El que existan multitud de librerías de third par-ties para enviar correos con .net, no es fruto dela casualidad, SWM tiene varios puntos débiles:• No es una implementación desarrollada 100 %

con .NET Framework, usa las libreríasCDONTS y CDOSSYS desarrolladas porMicrosoft hace años.

• El método que se usa para enviar un emaildepende de la versión de sistema operativo queusemos (para versiones inferiores a la 4 se usaCDONTS.NewMails para las demásCDO.Message object)… divertido cuando tene-mos un cliente al teléfono con un problema…

• Para autentificarnos con un servidor SMTP,necesitamos usar la versión 1.1 de .NETFramework.

• Si queremos enviar correos con formatoMHTML (MIME) con imágenes adjuntas en elmismo e-mail, mejor ir pensando en usar otraslibrerías…

Page 18: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

por ejemplo estamos trabajando desdecasa, o si queremos enviar el correo des-de una aplicación Windows (desktop)con un proveedor de Internet normal ycorriente.

Para poder usar los servicios de unservidor SMTP remoto, necesitamosautentificarnos como usuarios válidos(user id, y clave). Esto con la versión 1.0de .NET Framework no era posible.Afortunadamente el tiempo pasa y laversión 1.l sí que implementa esta fun-cionalidad.

En el Fuente 2 puedes ver una fun-ción que envía un email autentificán-dose. El código del ejemplo completoesta disponible en la página web, se lla-ma: planoAutentifica (muy importante ala hora de probar, que no te olvides deponer en el código tu servidor de SMTP,el ID de usuario y la clave).

Aquí lo que hacemos es decirle a laaplicación que queremos autentificar-nos de forma básica (enviando texto sinencriptar). Esta es la manera estándarque se usa hoy en día. También pode-mos usar NTLM para añadir más segu-ridad, pero tenemos el problema de queya nos limitamos a servidores Windows.

Correos electrónicos con formato HTML

Hoy en día la mayoría de correosque recibimos de empresas tienen unaspecto vistoso (imágenes, colores, fuen-tes…).

SWM permite enviar este tipo deemails usando el formato HTML.

Fuentes y colorines vale, pero ¿imá-genes?… El “truco” para meter imáge-

nes en un email y no amenazar con satu-rar el correo de nuestro cliente es, tenerlos ficheros en nuestro servidor web y

simplemente poner el link a ellos en elobjeto imagen del correo HTML, porejemplo:

dotN

etM

anía

<<

18

dnm.asp.net<<

using System;using System.Web.Mail;

namespace PlanoSimple{

/// <summary>////// </summary>class PlanoSimple{

static bool SendPlainTextEMail(string strFrom, string strTo,string strSubject, string strBody)

{bool bRet = true;MailMessage msg = new MailMessage();

try{

msg.From = strFrom;msg.To = strTo;msg.Subject = strSubject;msg.Body = strBody;

SmtpMail.Send(msg);}catch(Exception){

bRet = false;}

return bRet;}

/// <summary>/// main de la aplicación./// </summary>[STAThread]static void Main(string[] args)

{string strFrom = “[email protected]”;string strTo = “[email protected]”;string strSubject = “Titulo”;string strBody = “Contenido del E-Mail”;bool bSuccess = false;

Console.WriteLine(“Enviando E-Mail a:” + strTo);bSuccess = SendPlainTextEMail(strFrom, strTo,

strSubject, strBody);

if(bSuccess){

Console.WriteLine(“Mail enviado con éxito”);}else{

Console.WriteLine(“Ocurrio un fallo al enviar el e-mail”);}Console.ReadLine();

}}

}

Figura 1. Necesitamos añadir la referencia a System.Web.dll

Fuente 1. Enviando eMail de texto plano, usando un servidor de correo local

Page 19: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

Así cuando nuestro cliente recibe el email éste seva cargando como si de una página web se tratara, sintener que preocuparnos por adjuntar otros tipos deficheros al correo. No hay que abusar de las imáge-nes ya que si no estamos conectados a Internet éstasno se ven.

El único cambio que tenemos que hacer en el códi-go para enviar contenido con HMTL es el siguiente:

En el string donde pasábamos el contenido ahorale pasamos un string con el HTML (en la página webte puedes bajar un ejemplo completo, se llama

EMailHTML, que lee del disco un fichero HMTL ylo envía.

Attachments (ficheros adjuntos)Añadir ficheros a un email nos permite hacer

cosas como adjuntar una factura, o unas instruccio-nes de instalación (jeje, respuesta automática del ser-vicio de soporte: “Estimado Pedro, te envío la guíade instalación de la aplicación adjunta a este correoen formato PDF, por favor si tienes algún problemano dudes en escribirme de nuevo…”).

Esto parece algo muy ventajoso, pero te aconse-jo que no lo uses a no ser que sea imprescindible, ¿Porqué? Imagínate que cuando notificas un pedido a uncliente aprovechas para adjuntarle la factura en for-mato PDF. El cliente se acostumbra a recibir correos

dotN

etM

anía

<<

19

dnm.asp.net<<

static bool SendPlainTextEMail( string strFrom,string strTo,string strSubject,string strBody,string SMTPServer,string UserID,string Password

){

bool bRet = true;MailMessage msg = new MailMessage();

try{

msg.From = strFrom;msg.To = strTo;msg.Subject = strSubject;msg.Body = strBody;

// Autentificación básica, pon aquí tu User y Password// [email protected](“http://schemas.microsoft.com/cdo/configuration/smtpauthenticate”, “1”);

msg.Fields.Add(“http://schemas.microsoft.com/cdo/configuration/sendusername”, UserID);

msg.Fields.Add(“http://schemas.microsoft.com/cdo/configuration/sendpassword”, Password);

// “smtp.midominio.com”;SmtpMail.SmtpServer = SMTPServer; SmtpMail.Send(msg);

}catch(Exception){

bRet = false;}

return bRet;}

<img src=”http://www.bdiez.com/logo.jpg” />

msg.BodyFormat = MailFormat.Html;

Fuente 2. Enviando email autentificándose.

Page 20: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

de tu dirección con attachments y cualquier spammerpodría utilizar tu misma dirección, el mismo subject yadjuntar un fichero malicioso.

En la página del artículo puedes bajarte un ejem-plo completo sobre cómo enviar este tipo de correos(el ejemplo se llama: PlanoAdjunto), básicamente elcódigo a añadir para enviar el attachment sería:

Ojo, aquí es muy importante que le pongamosMailEncoding.Base64 o MailEncoding.UUEncodecomo parámetro, si no nuestros clientes recibiránlos ficheros corruptos.

También debemos tener cuidado si el servidor decorreo usa Windows 2000, puede fastidiarnos el fiche-ro adjunto del correo (KB-286358), la solución a estoes que hacer un update y bajarse los parches de la webde Microsoft.

El formato MIME - MHTML

MIME son las iniciales de Multipurpose InternetEmail Extensions (en español algo así como Extensionesmultipropósito para el correo electrónico). Es un estándarbastante extendido para codificar ficheros binarioscomo ficheros adjuntos a un email.

Uno de los usos que le podemos dar a esto esenviar nuestros emails en formato HTML, pero estavez con las imágenes adjuntadas al mismo (así el clien-te podría leer el email aunque estuviera offline). Estofunciona poniéndole a la imagen que queremos aña-dir un content-disposition ‘inline’, y un content-id que seael mismo que después usaremos en el HTML para eltag <img src=…> (algo así como decirle “oye estaimagen la voy a usar en el correo y tiene este ID).

¿Te gusta la idea? Pues prepárate a pagar o diver-tirte implementando esto por tu cuenta, porque SWMno tiene funcionalidad para enviar este tipo de emails.

Si te va la marcha y quieres ver cómo funcionaesto, puedes echarle un vistazo a cualquiera de losRFC’s sobre MIME que hay (http://www.faqs.org/rfcs/rfc2045.html).

Aquí tienes dos opciones gratuitas:• Sourceforge tiene un proyecto abierto muy intere-

sante (http://sourceforge.net/projects/opensmtp-net)• Codeproject: Aquí podrás encontrar artículos de

voluntarios, con el código fuente a tu disposición(por ejemplo: http://www.codeproject.com/csharp/smtpemailer.asp).

Si lo prefieres puedes comprar unas libreríascomerciales. Hay varias disponibles:

• aspNetMail (http://www.aspnetemail.com)• Abderaware (http://www.abderaware.com)• QuikSoft (http://www.quiksoft.com).

ConclusiónEspero que este artículo te haya ahorrado un poco

de tiempo dándote cabezazos contra el monitor y sepashasta dónde puedes llegar usando SWM.

Si necesitas más información existe un faq hechopor Dave Wanta, que es estupendo, en la siguientedirección: http://www.systemwebmail.com

dnm.asp.net<<

Figura 2. Ejemplo de un correo formateado con HTML

MailAttachment attachment = newMailAttachment(“C:\MiRuta\Mifichero.Ext”,

MailEncoding.Base64);msg.Attachments.Add(attachment);

noticias.noticias.noticias.noticias

Infragistics ha anunciado que está enviando con el Infragistics NetAdvantage2004 Volume 2, un completo cojunto de herramientas para desarrollar inter-faces de usuario de calidad profesional para Windows Forms, ASP.NET,Tablet PC & COM. El Volúmen 2 de NetAdvantage 2004 se envía connuevos diseñadores y estilos de presentación a lo largo y ancho de todoslos elementos de ASP.NET, ayuda estilo MSDN a través del HelpCenter,

nuevas caracterísiticas en WebTab, WebGrid, WebCombo, WinSchedule yWinGrid, y tres nuevos elementos: WinDataSource, WinGridBagLayout, yWinFlowLayout.

Más información en:http://www.infragistics.com/products/netadvantage_portal.asp

Infragistics™ introduce nuevas características y diseñadores en NetAdvantage™ 2004 Volume 2

Page 21: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

en un momento de la informática en elque las empresas se encuentran con estas situa-ciones:

a) Las empresas están compuestas de multitudde herramientas inconexas que causan autén-ticos dolores de cabeza cuando la direcciónnecesita información relacionada con los pro-ductos que generan todas ellas.

b) Las empresas cuentan con canales de comu-nicaciones globales y necesitan poder inter-comunicarse con otras empresas de una for-ma automatizada, que no es posible llevar acabo sin implicar en los desarrollos a todoslos partners que ofrecen y/o demandan ser-vicios. Y no todos tienen los mismos recur-sos, productos, protocolos…y un larguísimoetcétera.

c) Las empresas generan multitud de docu-mentos. Y estos documentos deben ser –con-tinuamente- transformados y filtrados paraque otros elementos del negocio puedandesarrollar sus propios procesos.

d) Una empresa requiere del envío de docu-mentos a otras empresas que desarrollan deforma propia sus procesos, generados a par-tir de la finalidad del documento.

e) Los intentos de integrar distintas herra-mientas pasan por desarrollos de softwareque muchas veces acaban en fracasos debidoa faltas de entendimiento del negocio, falta

de requisitos claros, costes, tiempos de pues-ta en marcha, costes de mantenimiento, fal-ta de adaptación a los cambios… y –de nue-vo- un largo etcétera.

f) Resistencia al cambio a las nuevas tecnologí-as, o imposibilidad –por ser proyectos invia-bles- de implantarlas debido a la naturaleza delos nuevos sistemas de acuerdo a la infraes-tructura o criticidad de las tecnologías de lasque dispone. Lo cual limita el crecimiento dela empresa y su competitividad en un merca-do en cambio continuo y muy agresivo.

¿Qué es BizTalk?, ¿qué pinta en esta historia?Ya desde la primera versión de este producto, la visión

Microsoft BizTalk Server 2004:El futuro de la integración empresarial

Por Pepe HeviaSoftware ArchitectAlhambra-Eidos

Tengo suerte de poder contar en este artículo las bondades de un producto deMicrosoft, que en su versión 2004 demuestra no sólo su madurez, sino su cam-bio de filosofía. BizTalk 2004 es a BizTalk 2002 lo que .NET es a COM. Peroantes de emocionarme con las novedades de este producto vamos a introdu-cir en qué se basa BizTalk. Después entenderemos esas nuevas ventajas.

BizTalk aparece<<

dotN

etM

anía

<<

21

Desde la versión 2002, y multiplicadopor “n” en la nueva versión 2004,BizTalk sabe resolver un problemacandente: la velocidad y la dinámica

de adaptación de los servicios de software de negocio

a la capa del propio negocio

Page 22: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

de Microsoft ha sido la de proporcionara la empresa un producto “out of the box”–listo para usar- que proporcionara deuna manera óptima, herramientas parapoder integrar todos los elementos quehasta el momento formaban parte de lariqueza de una empresa, y a la par supotencial riesgo de estancamiento: ladiversidad de sus aplicaciones de nego-cio. Por tanto, la palabra clave es queBizTalk es un Integrador de recursos.Pero desde la versión 2002, y multipli-cado por “n” en la nueva versión 2004,BizTalk sabe resolver un problema can-dente: la velocidad y la dinámica de adap-tación de los servicios de software denegocio a la capa del propio negocio.Mediante un nuevo paradigma deArquitectura Orientadas a los Servicios(SOA) y una gramática XML denomi-nada BPEL (Business Process ExecutionLanguage), BizTalk también resuelve unproblema: ya que el analista de negocioes el que lo conoce y lo hace cambiar deacuerdo al mercado, hagamos queBizTalk proporcione las herramientas alanalista para que adapte su propio len-guaje de negocio: hablemos todos BPELcon el nuevo Business Rule Engine.

BizTalk hasta hace poco…una toma de contacto

BizTalk es un servidor corporativoque proporciona a los sistemas un enla-ce especial a través del cual unos siste-mas pueden convivir con otros… sinenterarse de que realmente lo estánhaciendo. El tema es muy divertido, pues

esto en realidad quiere decir que BizTalka veces se comporta como un usuario quecoge un documento de una aplicación,lo transforma y se lo pasa a otra que loentiende, la cual a su vez lo procesa,devuelve un resultado que –de nuevo- elusuario recoge, transforma y devuelve asu origen como si nada hubiera pasado.Para ello, BizTalk proporciona un con-junto de canales (puertos) a través de loscuales está “al loro” de lo una aplicación

genera como entrada, y que otra aplica-ción espera como producto. A esta infor-mación se la denomina mensaje.

Y como cada aplicación puede gene-rar o consumir información empleandovarias tecnologías, BizTalk proporcionaimplementaciones de dichas tecnologí-as: HTTP, MSMQ, clases COM, fiche-ros de texto… etc. Tecnologías que siem-pre han acompañado a los sistemasWindows. Pero el valor añadido deBizTalk no es sólo esta diversidad deadaptadores integrados con el producto,sino los adaptadores que proporcionanterceros fabricantes (puesto que BizTalksigue las premisas de ofrecer Kits de desa-rrollo y extensibilidad típicas deMicrosoft) que apoyan a este producto.Así pues, podemos encontrar que losgrandes fabricantes de software corpo-rativo, han desarrollado adaptadores queproporcionan a BizTalk una pasarela asus motores propietarios, proporcionan-do una pasarela XML que le da la infor-mación que requiere el proceso de inte-gración. Algunos ejemplos de estos fabri-cantes son SAP, SWIFT, RosettaNET,

HIPAA y algunos más.Puesto que estos adaptado-res aceleran las integracio-nes de negocio (ya que evi-tan tener que desarrollarpolíticas de adaptación case-ras), se les denominanAccelerators.

Ni qué decir tiene queya que BizTalk actúa de inter-mediario en toda la arquitec-tura de intercambio de men-sajes, es posible enrutar losmensajes, filtrarlos, analizar-los en base a reglas de admi-nistración. Lo cual aporta

mucha flexibilidad a la hora dedepurar, detectar inconsistencias,o crear sistemas escalables y/otolerantes a fallos (redundancia).

Puesto que un entorno corporati-vo se mueve por reglas de negocio, otrapremisa que debe cumplir BizTalk es lade proporcionar mecanismos transpa-rentes para el integrador de negocio quesean claros, efectivos, sencillos….y queahorren tiempo y costes en su implan-tación. Obviamente, cuanto menoscódigo exista, mejor. Y si existe, cuantomás específico, mejor. Por ello, BizTalk

dotN

etM

anía

<<

22

dnm.servidores.biztalk<<

Nota

BizTalk es un producto“Out-Of-The-Box” queproporciona multitud deherramientas para implan-tar procesos de EAI.

[ [

“La integración de procesos ha sido siempre yserá una de las características de la innovación enlas operaciones de las empresas o en los servi-cios públicos. A las empresas u organismos quequieran liderar sus mercados pueden serle de granayuda la tecnología de integración de BizTalk 2004que incluye los últimos estándares XML y tecno-logía basada en Servicios Web.”

Francisco Monteverde,Director de la Unidad deNegocio de Servidores yPlataformas en MicrosoftIbérica

Figura 1

Page 23: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

incorpora un lenguaje visual basado en reglas simila-res a un pseudocódigo que -modelado con MicrosoftVisio-, establece, de modo claro, las reglas del juego.Todo este motor (engine) está basado en unas especi-ficaciones denominadas XLANG. Y permiten inte-grar el idioma del negocio con los componentes delógica de negocio que resuelven los problemas en elmomento justo. Además, puesto que la herramientausada es Visio, cualquier analista que conozca los dia-gramas XLANG, podrá modelar su propio negocio.

Por último, BizTalk debe lidiar con distintos tiposde estructuras de datos origen y destino. Dichas estruc-turas de datos son, en realidad, los documentos queprocesan los aplicativos de las empresas: unas los gene-ran y otras los consumen. El problema: que BizTalkdebe encontrar una manera de poder unificar dichasestructuras, ya que si no sería imposible hablar de unservidor viable debido a la falta de la adaptación con-tinua de los módulos que posibilitarían dicha funcio-nalidad. Por ello, BizTalk proporciona unos adapta-dores que convierten los documentos origen en unformato intermedio, flexible, adaptable, versátil, uni-versal y estándar con el que poder realizar sus tareas.Aquí es donde XML y sus tecnologías relacionadasentran de lleno. Este tipo de formato, permite queBizTalk trabaje con una estructura intermedia que losimplementadotes del negocio pueden emplear paraaplicar todas sus reglas de transformación, adaptación,proceso…etc., de un modo único. Con el fin de obte-ner una transformación de dicho documento en unproducto final que es el que requiere la aplicación des-tino. Así se encapsula el trabajo del BizTalk de lasimplementaciones de los documentos origen-destino.Para ello, BizTalk emplea las gramáticas XSD quedeterminan el cómo analizar los documentos, y lastecnologías de XSLT para transformar un documen-to origen en uno destino, empleando herramientasque automatizan todo este proceso. El proceso por elcual un documento origen es adaptado a XML o undocumento XML es adaptado a un destino, emplean-do una gramática es llevado a cabo por los Pipelines,Estos pipes abstraen a los procesos de BizTalk de lasestructuras propietarias de los documentos, dejandoestas tareas para el primer y último eslabón del pro-ceso de integración. Además, ni que decir tiene, queya puestos, Microsoft incorpora de serie una colec-ción de pipelines que entienden los formatos están-

dares del mercado, tales como EDIFACT y ANSI X12que permiten integrar el software corporativo con losestándares de facturación de mercado y el intercam-bio de datos con las más grandes corporaciones: lasadministraciones (aunque en este caso sean las ame-ricanas…). Simplificando enormemente la implanta-ción de estas soluciones y ahorrando muchos costes.

Lo más interesante del tema, es que todo este tra-bajo se realiza en n-veces menos tiempo que su equi-valente en desarrollo específico informático. Es másmantenible, escalable, adaptable… y todos los “xxxa-ble” que se os puedan pasar por la cabeza. Y además,como buen framework que es, con todo el conjuntode herramientas de administración, gestión, enruta-miento, seguridad y rendimiento que la empresa nece-sita. Y por si fuera poco, con los vocabularios que lagente del negocio entiende (pues los diagramasXLANG tienen que ser revisados por personas delnegocio). De ahí que las siglas de BizTalk sean estas:Business (Biz, cariñosamente el inglés) Talk, hable-mos de negocios.

Y todo desde dos perspectivas: la de la empresaque quiere minimizar el impacto del desarrollo desoluciones software (empleando los mecanismos inte-grados de BizTalk) y la que necesita implementar pro-cesos basados en componentes de lógica de negocio(integrando en las reglas de BizTalk componentes denegocio desarrollados específicamente para resolverel problema: COM+, Acceso a datos, ServiciosWeb…etc.). Con lo cual, el límite: ninguno.

BizTalk 2004.Un auténtico .NETEnterprise Server

Todo lo anterior ha resuelto muchísimos proble-mas y aportado infinidad de soluciones que han aho-rrado muchísimos costes y simplificado procesosempresariales. Incluso puedo afirmar que una vez quese le coge el truco a BizTalk es jod… perdón, difícilvolver a las viejas costumbres. Pero, su tecnología se

dotN

etM

anía

<<

23

dnm.servidores.biztalk<<

Nota

BizTalk debe lidiar con distintos tiposde estructuras de datos, que son enrealidad, documentos XML.[ [

BizTalk a veces se comporta como un usuario que coge un documento de una aplicación,

lo transforma y se lo pasa a otra que lo entiende,la cual a su vez lo procesa, devuelve un resultado

que –de nuevo– el usuario recoge, transforma y devuelve a su origen como si nada hubiera pasado

Page 24: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

ha quedado anticuada.Microsoft ya hace dos añosque presentó su renovación:.NET Framework. No puedomás que contar bondades deesta tecnología: un CLR queejecuta un formato especial decódigo ejecutable portable(PE) llamado MSIL, que ofre-ce infinidad de servicios a losdesarrolladores en forma deJIT, librerías de miles de cla-ses categorizadas en espaciosde nombres, totalmente inte-gradas con los estándaresXML y que apoyan una nue-va filosofía de arquitectura de software: los serviciosWeb –el mejor jarabe para resolver la integración uni-versal de comunicaciones, el pegamento de las n-capas de los modelos cliente/servidor-. Un motor ges-tionado que proporciona un alto rendimiento, segu-ridad de ejecución como no se ha visto hasta ahora yuna independencia del dispositivo que lo hace fácil-mente portable y conectable a cualquier dispositivo.Y todo esto orquestado por el mejor entorno de desa-rrollo integrado de la historia: Visual Studio .NET.

Todo esto hace que Microsoft se replantee el pro-ducto de nuevo. Y no cambiar de idea, sino poten-ciarla como pocas veces hasta ahora. Pues cuenta conuna tecnología mil veces mejor que la anterior. Portanto, BizTalk 2004 tiene la responsabilidad de ser milveces mejor que el anterior.

¿Qué es un .NET Enterprise Server? Un servi-dor corporativo que se integra con las nuevas tecno-logías de Windows Server 2003 System, que es capazde estar integrado y dialogar en XML y que aprove-cha las nuevas ventajas del motor de .NETFramework. Y todo con una máxima absoluta: pro-porcionar un entorno de alto rendimiento, robusto,seguro y productivo, diseñado para resolver y darinfraestructura a la integración de negocio. Y todoesto orquestado en un solo entorno de desarrollo que pro-porciona herramientas de desarrollo (en el lenguajeque mejor maneje el usuario), administración eimplantación “todo en uno”: Visual Studio .NET2003. De esta manera también matan varios pájarosde un tiro, pues los BT anteriores, obligaban a traba-jar con hasta más de 5 ventanas abiertas –sin contardiálogos- que complicaba en exceso el ser producti-

vo, y que complicaban las tareas de depuración e inte-gración, haciendo falta –incluso- papel para mante-ner todo unido.

La otra característica de un .NET EnterpriseServer es su orientación de construcción en base a lametodología MSF de Microsoft. La cual estableceque un proceso de arquitectura de componentes denegocio debe ser llevado a cabo por un equipo mul-tidisciplinar de personas, responsables cada uno desu área. En el caso de BizTalk, este equipo estará com-puesto por:

• Analista de negocio. Responsable de diseñar losprocesos de negocio. BizTalk debe, por tanto,implementar herramientas con las que el ana-lista de negocio pueda representar su visión delrequisito, empleando un sistema claro y unívo-co para representar lo que necesita.

• Arquitecto de Software. Persona responsable dediseñar la arquitectura de la aplicación BizTalkque debe responder a los requisitos de negocio.Será el responsable de diseñar la interacciónentre las reglas de negocio y las tecnologías dis-ponibles para implementarlas.

• Desarrollador. Persona responsable de desple-gar todos los componentes de software querequiere el diseño del arquitecto de software, yque serán validados por las reglas del analistade negocio.

• Equipo de sistemas. Responsable de implantar lasolución realzada para atender el proceso denegocio, en un entorno seguro, robusto, esca-lable y rápido.

Novedades de BizTalk 2004Pero, antes de que me empiece a ir por muchos

caminos voy a comentar las novedades que trae el nue-vo BT 2004, que no son pocas. Desde su integracióncomo un proyecto en Visual Studio .NET, pasandopor mejoras de administración y seguridad hasta lle-gar al potentísimo XLANG y a su nuevo hermano

dotN

etM

anía

<<

24

dnm.servidores.biztalk<<

Nota

La construcción de BizTalk está basa-da en la metodología MSF.[ [

“Un único entorno integrado dedesarrollo hace posible que las

organizaciones puedan construirsoluciones de integración mucho más

rápidamente, utilizando los conocimientosde profesionales ya disponibles en el

mercado y así reducir de manerasignificativa los costes globales de

personal asociados con la integración deaplicaciones”.

Fernando Bocigas Palma,Jefe de Producto BizTalkServer

Page 25: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

mayor: BPEL con su sistema de reglas y vocabulariode negocio… pero por partes, como las integrales…

• Integración completa con .NET Framework ycon Visual Studio .NET. Lo cual implica quese goza de todas las ventajas del CLR –como yahemos comentado-, a la par que se disfruta deuna integración nativa con el nuevo modelo dedistribución de capas del mercado: los serviciosWeb.

• Visual Studio.NET como herramienta cuenta con:–Plantillas de proyecto para todas y cada unade las áreas de diseño y arquitectura de uncomponente empresarial.

–Multitud de vínculos, enlaces de “qué es losiguiente…”, consejos en línea…

–Generadores de especificaciones XML (XSD)y sus herramientas de control de calidad. Asícomo la capacidad de incorporar en la gra-mática la adaptación de un documento pro-pietario en un formato XML intermedioempleando los componentes PipeLine.

–Mapeadores gráficos de documentos emple-ando los poderosos “Functoids” –funcionestransformadoras de datos- para poder reforzarlas transformaciones con todo tipo de proce-so intermedio (procesos de cadenas de carac-teres, fechas, comprobaciones de datos, cál-culos matemáticos, y un larguísimo etc.). Nosólo se han mejorado los functoids de ver-siones anteriores, sino que se ha añadido laposibilidad de crear nuevos Functoids desa-rrollados a partir de ensamblados .NET.

• Gracias a la potencia de Visual Studio .NET, seofrece como novedad un nuevo sistema derepresentación de las reglas XLANG, elOrchestration Designer, que mejora los sím-bolos de representación visual a la par que inte-gra todas sus propiedades de personalización enun panel de propiedades -al más puro estilo de

Visual Basic- junto con las SmartTags o marcasinteligentes que nos asistirán en todo momen-to para configurar correctamente las reglas denegocio. Un potente editor de reglas integradocon .NET, pero existe la posibilidad de creardiagramas XLANG desde Microsoft Visio, quedespués de podrán importar al Visual Studiopara el posterior proceso por parte del equipode desarrollo.

• Nuevo sistema de enrutado de mensajes basa-do en el contenido, que permite filtrar mensa-jes y enrutarlos, no sólo en base al sobre, sino alos contenidos del mensaje.

• Integración de BizTalk Services Explorer en elpanel de Explorador de Servidores. Esta herra-mienta asiste al desarrollador en el proceso deimplantación y distribución de todos los com-ponentes en la base de datos de configuraciónde BizTalk Server. Sin contar que tiene todoslos asistentes oportunos para orquestar y poneren unión todos los elementos arquitecturalesque pondrán en marcha el proceso de negocio–ahora hablaremos de cómo va el temita-.

• Nuevo modelo de representación de los proce-sos de negocio: BPEL (Business Process ExecutionLanguage). Un potentísimo motor de reglasbasado en XML y en un rico conjunto de herra-mientas accesible a los analistas de negocio ydemás personal de proyecto, que permite podercrear reglas de negocio y vocabulario de nego-cio –acciones- que representan la activación decomponentes –disponibles en multitud de tec-nologías- de negocio. De tal manera, que sinnecesidad de desarrollar se pueden alterar lasreglas de negocio, o crear nuevas reglas.

• Mejores herramientas de análisis de procesos.Herramientas orientadas a IW (InformationWorkers, “Trabajadores de la información”).Herramientas de actividad de negocio (BAS,Business Activity Services); configuración, aprovi-

dotN

etM

anía

<<

25

dnm.servidores.biztalk<<

Figura 2. El entorno de desarrollo

Figura 3. El Orchestration Manager en acción

Page 26: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

sionamiento y monitorización (BAM, BusinessActivitity Monitoring); control de la interaccióncon los partners que emplean los servicios y laspotentes herramientas de HWS (Human WorkflowSevices), que permitirán integrar las reglas de nego-cio BPEL con los servicios ofertados por los pro-ductos de la familia Office System 2003:Sharepoint, Infopath y los productos de la fami-lia Office. Ni que decir tiene, que estas herra-mientas requieren de requisitos de instalacióntales como SQL Analisys Services o SharepointServices si se quiere disfrutar de ellas.

• Integración con mejores modelos de seguridady tolerancia a fallos propios de los nuevos ser-vicios de Windows Server System 2003: IPSEC,HTTPS, Certificados digitales, tecnologíasCluster, etc.

• Mejoras en la arquitectura de distribución yadministración de las herramientas B2B queafectan a los partners que emplean los serviciosproporcionados por las aplicaciones de negocio.

• Soporte de Single-Sign-On, la nueva tecnologíade Microsoft que permite reducir la compleji-dad de las contraseñas de acceso, proporcio-nando una única credencial que se vincula a unaBDD de acceso con las verdaderas credencia-les de acceso a varias aplicaciones de negocio.

• Incorporación de un subsistema de migraciónde mensajes de BizTalk 2002.

Como se puede observar no son pocos cambios.De hecho la orientación es tan nueva que aunque algu-nos principios de diseño y funcionalidad se mantie-nen como la versión 2002, es indudable que se pare-cen como un huevo a una castaña, lo cual llevará atener que volver a hacerse a la nueva filosofía del nue-vo producto. Por ejemplo, no encontraremos a BizTalkMapper, ni a BizTalk Editor en el menú de inicio.Necesitaremos Visual Studio .NET, y necesitaremosconocer las nuevas plantillas de desarrollo de com-ponentes BizTalk.

Las herramientas de BizTalk 2004En este punto voy a comentar un poco la distri-

bución de las nuevas herramientas de BizTalk paraque la gente que ya ha trabajado con las versiones ante-riores vea como queda la cosa, y los nuevos, disfrutencon lo que van a utilizar.

En primer lugar la instalación es un proceso curio-so, pues al terminar la copia de archivos se activa unasistente de configuración que nos hará el cuestiona-rio millonario de cómo queremos las bases de datos,las cuentas de seguridad, etc. Y este asistente se podráejecutar tantas veces como servidores BizTalk quera-mos configurar. Este asistente nos habrá ayudado apreparar el entorno de administración de BizTalk que

en cualquier momento podrá ser personalizado conel plug-in mmc denominado Administrador de BizTalkServer. Junto a esta herramienta, podremos encontrarmultitud de accesos a los diferentes componentes deadministración: control, estadísticas, análisis, etc.,incluyendo los asistentes que los configuran

En segundo lugar todo el proceso de desarrolloempieza con el Visual Studio. No hay ninguna herra-mienta de desarrollo específica –excluyendo el editorde reglas BPEL- en el menú de inicio de BizTalk. Todoforma parte de un proyecto empresarial, y por lo tan-to sus componentes, son las plantillas de Visual Studiopara cada componente estructural de la aplicación. Enla figura 2 podemos ver cómo queda la cuestión.

dotN

etM

anía

<<

26

dnm.servidores.biztalk<<

Figura 4. Herramientas de administración de BizTalk

Figura 5. Un proyecto BizTalk en Visual Studio .NET

Figura 6. Los diferentes componentes de un proyecto

Page 27: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

Desde este momento ya podremoscrear los elementos de una aplicaciónBT, que serán definiciones de esquemasde documentos de E/S, los pipelines quelos interpretan, los mapeos entre docu-mentos, las reglas XLANG/BPEL quelos procesan si es necesario, etc. Y laspropias herramientas de Visual Studio,nos irán echando un cable a través deventanas de propiedades, SmartTags y lamás que importante ayuda.

Pero la herramienta que más aho-rrará tiempo, será el BizTalk Explorer.Un nuevo vínculo en el explorador deservidores de Visual Studio con el quepodremos recorrer los diversos recur-sos que nos proporciona el contenedorde aplicaciones de BizTalk. Dos de susmisiones más importantes serán las deregistrar/desregistrar los ensambladosfrutos de una compilación de proyecto,así como la de vincular los puertos deE/S a las diferentes reglas de negocio.

Por casi terminar con esta descrip-ción de las nuevas herramientas deBizTalk, no puedo evitar hablar del nue-vo Compositor de Reglas de negocio. Unaherramienta que permitirá a los analis-tas de negocio orquestar sus propiasreglas empleando un casi lenguaje natu-ral. Es muy parecido a lo que Microsoftintentó con SQL y su English QueryManager, pero con la filosofía de nego-cio. Esto permitirá que hablemos denegocios con todas las de la ley. Basadaen un conjunto de vocabularios querepresentan los procesos del negocio, elanalista podrá definir sus propias reglasde activación y podrá generar nuevasversiones de éstas en función de los cam-bios que plantee el propio negocio, evi-tando todo tipo de conflicto con reglasanteriores.

Y aunque se me quedan en el tinte-ro, describir muchas más herramientas,voy a acabar con esta descripción, hablan-do de dos de las múltiples herramientasde análisis. Las que pueden interesar a un

administrador del sistema o un desarro-llador. Al margen de que luego podamos

emplear las herramientas de SQL AnalisysServices o aplicaciones Sharepoint de aná-lisis de mensajes –herramientas orienta-das claramente al usuario que quiere ana-lizar su negocio-, con el producto deBizTalk se han incluido dos herramien-

tas de supervisión que harán las deliciasdel desarrollador o del administradorhambrientos de estadísticas o control deerrores: Una es la de Seguimiento de esta-do y actividad que nos permitirá realizartodo tipo de informe de ejecución, erro-res, instalaciones de ensamblados, cana-

dotN

etM

anía

<<

27

dnm.servidores.biztalk<<

Figura 8. El Compositor de reglas de negocio

Figura 9. Seguimiento, estado y supervisión de BT

Figura10. Administración HWS

Nota

Todo forma parte de unproyecto empresarial, ypor lo tanto sus compo-nentes, son las plantillasde Visual Studio para cadacomponente estructuralde la aplicación.

[ [

Figura 7. BizTalk Explorer,el administrador de recursos

¿Qué es un .NET Enterprise Server? Un servidor corporativo que se integra con las nuevas tecnologías

de Windows Server 2003 System, que es capaz de estarintegrado y dialogar en XML y que aprovecha las nuevas

ventajas del motor de .NET Framework

Page 28: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

lizaciones activas, y un muy largo etc. La segunda, es laAdministración de HWS, que nos permitirá configurar yanalizar cómo está funcionando el motor de reglasBPEL. Lo dicho, no tienen desperdicio. Control abso-luto de la ejecución de nuestro BizTalk.

La construcción de una solución BizTalkEn este punto me gustaría poder introducir a

nuestros lectores cómo se aborda un proyecto BizTalky los pasos que se llevan a cabo para crear una solu-ción de negocio. Ahora, es una tarea que es tan ampliaque necesitaría de varios artículos… así que tiraré apor la pauta, y la especialización la dejaremos paramás adelante.

Lo primero que tenemos que tener en cuenta esdeterminar el ámbito en el que nos vamos a mover.En los white papers del producto se plantean básica-mente dos de los más habituales. El primero es el queplantea un problema EAI o Enterprise ApplicationIntegration, la integración empresarial. En este caso,los responsables del proyecto necesitarán realizar bási-camente una definición de especificaciones de E/S,que tendrán que ser recogidas y enviadas de/a un puer-to después de haber sido transformadas si es necesa-rio. La segunda es la que afecta a los procesos B2B decomercio electrónico. En la que ya entran en juegomás elementos como por ejemplo el ciclo de flujo deun mensaje que debe pasar por múltiples estanciashasta llegar a su destino. En este caso se puede sacarmucho provecho de las especificaciones de entra-da/salida y las reglas XLANG/BPEL. Al final, estoscasos examinan distintas combinaciones de los ele-mentos BizTalk para resolver los problemas del nego-cio. Os animo a echarles un ojo si sois gente recienteen este mundillo…

En BizTalk existen varias posibilidades de resol-ver los problemas. De hecho, es lo que puede con-fundir al principio al equipo del proyecto. En el casomás sencillo, es posible realizar un proceso de EAIcompleto sólo desarrollando las especificaciones deE/S –con como mucho una especificación de trans-formación- y orquestando el proceso de conexión alos puerto de E/S empleando el BizTalk Explorer y susherramientas de configuración. Pero claro, si en unfuturo queremos complicar las cosas, sería necesariotirar de reglas de negocio XLANG, viéndonos obli-

gados a tocar toda la configuración. Y normalmenteeso es lo que suele ocurrir. Por ello, en este punto, tira-ré a la configuración más completa posible, que cons-tará de un conjunto de especificaciones, una regla detransformación, una regla XLANG que orqueste elproceso y un conjunto de puertos de E/S que captu-ren y envíen la información. Para ello, las fases del pro-yecto serían como las que podemos ver en la figura 10.

Puesto que un proyecto BizTalk se puede con-vertir en una locura debido a las múltiples partes quelo componen, será recomendable definir cuanto antesun estándar de nomenclatura de cada componente.Además, mi consejo es que no creéis un solo proyec-to, sino una solución que separa claramente especifi-cación de lo que es regla de negocio. Ventajas de esto,reutilizar las especificaciones en múltiples proyectos.Las especificaciones serán para nosotros como las cla-ses de datos que utilizará nuestra aplicación, y pue-den ser comunes a cualquier proyecto o canal de adqui-sición/envío de datos.

En la fase de Especificaciones podremos defi-nir las gramáticas de los documentos que nuestroBizTalk va a procesar. En este punto es importantetener claro qué tipo de información requieren los pro-cesos de negocio “A” y “B”. Las especificaciones enBT son gramáticas XSD que asocian estructura dedatos con formato de datos. Esto permite que BizTalktenga clara la estructura del documento XML quedebe manejar, al margen de que el documento que lellegue sea texto plano CSV o bien otro XML. En estafase, además se deberán tener en cuenta las posiblestransformaciones que habrá que hacer del documen-to origen para que pueda “entrar” en la especificacióndel documento destino. La transformación es un docu-mento XSLT que transforma el XML origen al XMLdestino. Y los Functoids serán las piezas personali-zables que nos proporcionarán las múltiples opcionesde adaptación de campos: desde funciones matemá-ticas simples, pasando por funciones de proceso decadenas de caracteres, hasta llegar a funciones de bases

dotN

etM

anía

<<

28

dnm.servidores.biztalk<<

Nota

La construcción de una aplicaciónBizTalk está basada en 3 fases y requie-re de una estandarización de los nom-bres de objetos de negocio.

[ [

Figura 11. Fases proyecto BizTalk

Page 29: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

de datos tan chulas como el recoger un ID de una tablay recoger el valor de la misma para asociarlo al desti-no. Por último, como he comentado, los formatos delos mensajes no tienen por qué ser XML. Pueden serdiversos formatos como CSV, propietarios, etc. BizTalkgracias a la especificación del documento, será capaza través de las PipeLines de adaptar el formato delmensaje a una estructura interna XML que coincidecon la especificación, haciendo que para el desarro-llador de las reglas, todo sea XML. Lo cual hace queel desarrollo sea independiente de los documentosenviados/recibidos. Impresionante. En este punto, esdonde decía que los conectores BizTalk juegan unimportante papel: Rosetta, EDITRANS, SAP…etc.

Un ejemplo de cómo queda nuestra transforma-ción de pedido a factura lo podemos ver la figura 13.

Si los documentos de entrada son XML, losPipelines disponibles en el SDK de BizTalk seránsuficientes. Si por el contrario, alguno de losdocumentos no fuera XML puro y duro, podrí-amos crear nuestro propio Pipeline de adapta-ción. Con esto se terminaría esta fase.

En la Fase de Reglas de negocio es donde yaentrarían en juego los motores de reglas de BizTalk.Mi consejo es agregar a la solución un nuevo proyec-to de tipo BizTalk, y creando en el mismo elementosde tipo Orquestación. Y -muy interesante el tema-, pues-to que hablamos de varios proyectos, cada uno se com-porta como un ensamblado de clases .NET. Esto impli-ca que debemos establecer las referencias entre losensamblados para poder reutilizar las clases que con-tienen. Nada que no sepamos hacer ya…

Y es donde ya nos podemos encontrar con dosgrandes opciones: una que sería por emplear elOrchestration Designer con el que editar “pseudo-código” que genera el XLANG, o bien emplear BPELcon el Compositor de Reglas de negocio. Ni que decirtiene, que este compositor genera reglas BPEL quetendrán que ser orquestadas dentro de un documen-to XLANG, que es que a fin de cuentas, indica la inte-gración de la E/S con las reglas de negocio que sedeben disparar. Lo cual ya amplía las posibilidades alrango de “infinito”. En estos diagramas se nos da laopción de poder combinar un conjunto de símbolosde negocio que activarán un conjunto de mecanismosde la arquitectura de BizTalk. Nuestra misión, apor-tar el modelo de componentes que requieran dichosmecanismos: especificaciones, reglas de negocioBPEL, canales de entrada/salida, etc. Un procedi-miento a seguir muy típico en un proceso EAI senci-llo, es por ejemplo el diseñar los pasos que sufre laadaptación de un documento desde que entra hastaque sale, independizando los canales de E/S, que seránespecificados más tarde –esta es la alternativa por loque antes comentaba que hay otro paso más sencillo,pero menos mantenible-. Un ejemplo, en nuestro artí-culo, es la regla XLANG que especifica lo que debehacer BizTalk con el Pedido para convertirlo en Factura,y es: recoger el Pedido, convertirlo en Factura y enviarla Factura. Vea la figura 14.

dotN

etM

anía

<<

29

dnm.servidores.biztalk<<

Figura 12. Fase de especificación

Figura 13. Fase de especificación

Figura 14.Orquestar los elementos de un símbolo XLANG

Page 30: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

Bueno, pues tras haber hecho unos pequeños ajus-tes que requiere el diseñador, podemos pasar ya a com-pilar los dos proyectos y prepararnos para la última fase.

Otra manera de mejorar estas reglas XLANG,son las que dan toda la potencia a BPEL. Hasta aho-ra el analista de negocio cuenta con un conjunto desímbolos que simplifican los procesos de negocio. Perosigue dependiendo del equipo informático paraimplantar nuevas reglas, modificar canales de entra-da o salida… BPEL es un motor de reglas que encap-sula toda la funcionalidad de los sistemas informáti-cos, proporcionando un lenguaje “natural” para queun analista de negocio pueda establecer sus condicio-nes de ejecución implantándolas él mismo. Para ello,la herramienta de las reglas cuenta con una serie deelementos que ofrecen al analista un vocabulario denegocio, que internamente estará encapsulado en:documentos XML instanciados a partir de una entra-da, clases .NET Framework, consultas a bases de datosu otros vocabularios. De esta manera, el analista ele-girá un elemento de vocabulario para crear una regla,que le ofrecerá las típicas funciones de decisión parapoder activar unas u otras, generar unos resultados uotros, etc.

La ventaja: que la distribución de los componen-tes ya está hecha, está versionada y sólo es necesariocambiar las reglas para que cambie el comportamien-to de los componentes que las integran, reduciendo ladependencia analista-informático, los tiempos de desa-rrollo-implantación y aumentando la productividad yla competencia. Este editor de reglas es muy sencillode manejar y es tan intuitivo que hasta podemos pen-sar que nos pueden quitar el trabajo… ejem, en fin,que no es verdad… que seguimos siendo muy necesa-rios para alimentar los catálogos de vocabulario. Quesea el usuario de negocio el que se los pica…je, je, je.Arrastrando y soltando, podremos evaluar cualquiertipo de dato y generar cualquier tipo de acción. Tancompleja como el negocio lo requiera.

Pues ya para terminar, nos encontramos con laFase de implantación. En esta fase emplearemos elBizTalk Explorer para registrar los ensamblados en elservidor BizTalk y especificar la vinculación de lospuertos de entrada y salida a los canales que especifi-camos al crear el XLANG. La vinculación de los puer-tos se realizará dinámicamente y así podremos reubi-car los puertos en cualquier momento. Es una enor-me ventaja de la que podemos aprovecharnos. En estepunto comentaros que otra de las ventajas que apor-ta BizTalk es precisamente la transparencia de poderelegir cualquier mecanismo de entrada/salida: fiche-ro, mensaje de una cola MSMQ, un servicio Web, etc.La responsabilidad de Visual Studio radica en su capa-cidad para permitirnos desplegar el proyecto en losservicios de BizTalk, y configurarlos seguidamentecon los asistentes y herramientas de BizTalk Explorer.Un requisito a tener en cuenta, es que todos los ensam-blados de la solución deben estar firmados digital-mente y ser considerados como de nombre seguro –locual ya sabrán hacer los que hayan desarrollado, entreotras cosas, componentes COM+-. Lo dicho, unagozada.

dotN

etM

anía

<<

30

dnm.servidores.biztalk<<

Figura 15. Nuestra Orquestación lista

Figura 16. Editor de reglas en acción

Figura 17. Generando una regla que evalúa unpedido para poder hacer un descuento en la factura.

Suena muy de negocio, ¿no?

Page 31: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

En este punto comentar que BizTalk nos da laposibilidad de poder utilizar diversos conectores deentrada/salida. Dichos conectores nos permitirán abs-traer en nuestras reglas de negocio de donde proce-den los documentos y las tecnologías que los generan.Integrados de serie con el entorno, vienen los conec-tores de:

• “espionaje de directorios” –BizTalk escanea elestado de un directorio, de tal manera que cuan-do un fichero es ubicado en él, activa la regla denegocio-

• EDIFACT. Soporte nativo del protocolo deIntercambio Electrónico de Datos. Muy útil para,por ejemplo, conectar empleando el estándarbancario.

• Colas de mensajes MSMQ.• Conector HTTP. Empleando un conector en

el puerto 80 de forma predeterminada, una peti-ción POST de un documento XML dispara laregla asociada.

• Conector de Web Services y SOAP. Ni que decirqué misión tiene.

• FTP, SMTP y SQL en el caso de ser dispositi-vos de salida. Lo cual tiene muchas aplicaciones.

Pero esto no queda sólo aquí, pues dada la enver-gadura de este producto, muchos fabricantes estándesarrollando nuevos conectores para hacer sus siste-mas compatibles con este integrador de recursos. Aestos conectores los conoceremos como Aceleradores,y en la página web de Microsoft y de los fabricantes,encontrareis más información. Conectores por ejem-plo para SAP, Rosetta.NET, SWIFT, etc.

Es en este punto, donde comentar que los mis-mos conectores de entrada/salida ya ofrecen meca-nismos de selección de especificaciones de docu-mentos de entrada/salida y las pipelines que se vana emplear para su interpretación, así como las reglasde transformación. Típico en un EAI. Estas casillasno habrá que rellenarlas pues están especificadas enlas reglas XLANG que ya habremos diseñado.

Además, los puertos permiten establecer también lasreglas de filtrado y selección de mensajes así como elenrutado de los mismos por motivos de análisis denegocio, depuración de los procesos, mecanismos detolerancia a fallos y redundancia. En la figura 19 sepodrá ver que esos apartados aparecen como detallede la configuración.

dotN

etM

anía

<<

31

dnm.servidores.biztalk<<

Figura 18. Instalación de los ensamblados de negocio

Figura 19. Creación de los puertos de E/S

Figura 20. Puesta en marcha de las reglas

La orientación es tan nueva que aunque algunosprincipios de diseño y funcionalidad se mantienencomo la versión 2002, es indudable que se parecen

como un huevo a una castaña, lo cual llevará a tener que volver a hacerse a la nueva filosofía

del nuevo producto.

Page 32: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

Es en este caso, donde contaremos con el últimoasistente. El de vinculación de una Orquestación a lospuertos de activación (entrada) y el de salida (envío).Con este procedimiento ya seremos capaces de vin-cular los puertos a las reglas XLANG y poner en mar-cha todo el kiosco. Y a disfrutar de los mecanismosautomáticos de BizTalk.

Ni que decir tiene que cualquier cambio en unrequisito de entrada, una agregación de nuevos cam-pos a cualquier especificación, un nuevo puerto deentrada… son cuestiones que no afectan a todo undesarrollo, sino sólo al módulo afectado, y es confi-gurado con una herramienta gráfica sin apenas reque-rir desarrollo. Esto hace dinámico nuestro sistema yadaptable a cualquier cambio. Y esto hace muy poten-te y versátil a BizTalk.

Servicios Web. Integrados de serie

En otras versiones de BizTalk este novedoso con-cepto de poder ejecutar procesos remotos empleandoXML como lenguaje de comunicaciones (SOAP) ycuyo esquema es estándar en el mundo mundial(WSDL), estaba implementado a partir de complica-dos procesos de adaptación de los ensamblados .NETcon técnicas de Interop. De hecho, se sacaron en laWeb de Microsoft, adaptadores que permitían queBizTalk pudiera tener aceleradores basados en el con-cepto de clientes de servicios Web (clases Proxy), y enla versión 2002, la posibilidad de convertir una reglaXLANG en un servicio web, escribiendo un ensam-blado Web Service que internamente activaba elXLANG vía clases interop de BizTalk. Una película,efectiva y “sencilla”… pero película.

En esta nueva versión, el concepto de servicioWeb está tan integrado con el .NET Framework queBizTalk lo incorpora de serie tanto en los conectoresde los puertos, como con asistentes que publican demanera automática una regla XLANG como servi-cio Web bajo el IIS, sin que el programador tengaque desarrollar prácticamente más que la reglaXLANG con sus puertos de entrada/salida (simu-lando los parámetros del servicio y los valores de res-puesta del servicio).

Y para más “INRI” –os animo a ver en la MSDNun webcast del jefe de proyecto de BT2004, hablan-do del tema-, ni siquiera sería necesario montar unaplicativo para poder activar la regla. Bastará un sen-cillo asistente de conexión al servicio Web desde elnovísimo InfoPath de Office 2003, para tener todoel aplicativo terminado. Increíble.

Toda la historia se basa en crear el XLANG querecoge los parámetros de entrada y devuelve los valo-res de retorno como si de un puerto de los ya comen-tados fuera, incluyendo completas especificacionesque el engine de BizTalk extraerá para que el XLANG

actúe como en casa. Una vez clara la regla, desde elmenú de herramientas de Visual Studio, opción“Publicar como Servicio Web…” se nos abre un asis-tente que nos prepara toda la infraestructura, y asípasar a proceder como si de un proyecto de los yahablados mil veces de .NET se tratase. Nada que noconozcamos más que bien. Infopath se encargará delresto, convirtiendo las especificaciones tanto de entra-da como de retorno en preciosos formularios forma-teados con colorines a gusto del consumidor con unsencillo “clic” de ratón. Digno de la película de cien-

cia-ficción más avanzada. Y todo en el plazo de unahora escasa entre que empezamos y dejamos todofuncionando.

Que conste que comento Infopath ya queOffice 2003 system ofrece un entorno de creaciónde aplicaciones por el usuario que hace que el depar-tamento de informática pueda delegar responsabi-lidades en el usuario, pero puede ser cualquier apli-cativo capaz de consumir servicios web: EntornosMS, Entornos Java, otros .NET Servers… la inte-gración está servida.

dotN

etM

anía

<<

32

dnm.servidores.biztalk<<

Figura 21. Asistente de publicación de Servicios web

Figura 22. Servicio web en acción

Page 33: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

Para terminar… la seguridad

Para lo último, que no menos importante, quémenos que hablar de la seguridad. Un tema que ha hechoreplantearse a Microsoft todos sus diseños de sistemasoperativos. BizTalk está integrado con los mecanismosde seguridad de Windows 2003 en cuanto a temas deautenticación. La autorización es llevada a cabo por dosabstracciones del sistema: el HOST y el HOST AIS-LADO. El primero servirá para crear aplicaciones eje-cutadas dentro del marco interno de la empresa. Elsegundo, el aislado, es el que se empleará cuando lasconexiones de lectura o escritura, requieren de puertosque están disponibles en el exterior del sistema (cone-xión con partners, sucursales…etc.). El HOST aisladoa su vez, está integrado con los mecanismos de IPSECy HTTPS, permitiendo su encriptación a través de cer-tificación digital y VPN. Todo esto, transparente a laaplicación. Para la gestión de estas configuraciones, goza-remos de la herramienta Consola de Administración deBizTalk, que podéis ver en la figura 24.

Incluso el propio servicio de BizTalk requiere decuentas especiales que hacen que ni siquiera los admi-nistradores de BizTalk sean capaces de acceder a másde lo que el administrador del dominio o de la máqui-na les deje ver. Os aconsejo que instaléis el productopara ver por qué digo todo esto.

Para finalizar, comentar que dentro de lo queincluiríamos en el marco de seguridad, podríamosmeter todo el conjunto de herramientas de análisis y

control de los servicios de BizTalk, que no dejarán anadie descontento en cuanto a los valores que ofrecensus querys al sistema: errores de ejecución, warningsde ejecución, etc. Sin contar con su integración con elservicio de eventos y rendimiento de Windows 2003.

ConclusiónPues con esto hemos podido ver sólo un poco de

todo lo que nos ofrece Microsoft con esta más quenovedosa versión de un producto que seguro hace lasdelicias de los departamentos de informática, por suimportancia en la integración de los sistemas de laempresa, así como la unificación en un entorno de lasreglas de negocio, basado en un sistema tan modularcomo la tecnología .NET lo permite –que no es poco-y la robustez de un sistema operativo productivo inclu-so en las situaciones más difíciles. Un 10 para MicrosoftBizTalk Server 2004.

Si queréis más información acerca del tema, y ariesgo de que el editor me pegue “un toque”… (quémejor que integrar bases de conocimiento), enAlgoritmo digital (www.algoritmodigital.com), he teni-do la suerte de publicar artículos de cómo hacer… conBizTalk 2004, así como en mi web personal www.hevia-tec.net. Os animo a echarle un vistazo como comple-mento a este artículo. Y cómo no, a la enorme base dedocumentación disponible de BizTalk en la páginaWeb de Microsoft y su MSDN. No tienen desperdi-cio. Pero aviso, hay tanta documentación que pode-mos acabar saturaditos. Hasta la próxima.

dotN

etM

anía

<<

33

dnm.servidores.biztalk<<

Figura 23. InfoPath y Biztalk en accion,la caña de España

Figura 24. Consola de administración de BizTalk

bibliografía

Microsoft Biztalk Server 2004:Developer’s GuideScott Woodgate, Stephen Mohr, Brian Loesgen

Editorial: SAMSPáginas: 768

ISBN: 0672325985Publicado: Previsto para agosto, 2004

Page 34: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

34

Windows se requiere visuali-zar información en formato tabular, en la mayor par-te de las ocasiones recurriremos al control DataGridpara solventar la situación.

Se trata de un control que ha evolucionado nota-blemente desde los tiempos de Visual Basic 6, y aun-que ya entonces ofrecía un importante abanico decaracterísticas en cuanto a la presentación gráfica delos datos, con la llegada de la tecnología .NET,DataGrid, el sucesor del control DBGrid de VisualBasic 6, ha ampliado considerablemente la oferta deposibilidades en el apartado gráfico.

En el presente artículo vamos a explicar los pasosnecesarios para establecer, en tiempo de diseño, laapariencia de los datos presentados por este control,dotándoles de una mayor vistosidad, y haciendo queal mismo tiempo, su consulta sea más fácil de llevar acabo.

Creación del origen de datos para un DataGrid

Tras crear un nuevo proyecto Visual Basic .NETpara Windows, al que daremos el nombre GridBasico,y antes de pasar a manipular un DataGrid, vamos acomenzar por hacer un repaso del modo de prepara-ción del entorno de datos con los que alimentaremosa nuestro control. En los ejemplos de este artículo uti-lizaremos SQL Server como servidor de datos, yNorthwind como base de datos.

Desde la ficha Datos, del Cuadro de herramientas, aña-diremos al formulario un componente SQLDataAdapter,

en cuyo asistente de configuración crearemos una cone-xión contra la base de datos mencionada anteriormente.

Seguidamente elegiremos el tipo de consulta basa-do en instrucciones SQL, y escribiremos una senten-cia que obtenga las filas de la tabla Suppliers.

A continuación, en la parte inferior de la venta-na de propiedades de este adaptador de datos, hare-mos clic en el enlace Generar conjunto de datos, y un

Configurando la apariencia del control DataGrid

Por Luis Miguel BlancoSoftware ArchitectAlhambra-Eidos

<<

El control DataGrid, perteneciente al espacio de nombres Windows.Forms,permite dise-ñar una presentación de datos con un elevado grado de configuración y flexibilidad. Eneste artículo haremos un repaso básico de aquellos elementos del control, y tipos de laplataforma .NET Framework, implicados en que la visualización de nuestra informacióntenga un resultado satisfactorio.

Cuando en una aplicación

Figura 1

Figura 2

Page 35: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

35

dnm.plataforma<<

nuevo asistente nos permitirá crear unDataSet al que llamaremos dsNorthwind,que contendrá la tabla Suppliers.

Como resultado, el componenteSQLDataAdapter generará en el pro-yecto un esquema de DataSet, y a par-tir del mismo, se creará un DataSet conel nombre DsNorthwind1, que aparece-rá en el panel de componentes del dise-ñador del formulario.

Configuración de un DataGriddesde el diseñador del formulario

Seguidamente arrastraremos sobreel formulario un control DataGrid, alque daremos el nombre grdDatos. Para

indicar a este control de dónde debeobtener los datos, usaremos las siguien-tes propiedades.• DataSource. En esta propiedad esta-

bleceremos el DataSet que contienetoda nuestra estructura de datos:DsNorthwind1.

• DataMember. Aquí asignaremos latabla del DataSet establecida enDataSource que queremos visualizaren el DataGrid: Suppliers.

Llegados a este punto, debemostener en cuenta un aspecto importanteque muchas veces pasa desapercibido. Siejecutamos en este momento el proyec-to, el control DataGrid estará vacío. Estoes debido a que el DataSet con el queestá enlazado se encuentra tambiénvacío, puesto que el llenado del mismono se produce automáticamente, siendoel programador quien debe realizarlo,ejecutando el método Fill del objetoDataAdapter. Podemos hacer esta ope-ración en múltiples lugares, por ejem-plo, en el evento Load del formulario,como vemos en el siguiente fuente.

Ahora sí que podremos visualizarlos datos en el control tal y como espe-rábamos.

Como truco para conseguir unamejor visualización del grid en el for-mulario, podemos asignar a la propie-dad Dock de este control el valor Fill, demodo que cada vez que se redimensio-ne el formulario, el control ajustaráautomáticamente su tamaño, ocupandotoda la superficie de la ventana, así visua-lizaremos una mayor cantidad de filas ycolumnas.

Comenzando a decorar losdatos

Aunque el resultado de la presen-tación de información realizada por elDataGrid es correcto, no deja de ser untanto parco en el apartado gráfico.Nuestra misión a partir de ahora es solu-cionar dicho punto débil, así que pon-gámonos manos a la obra para aportarun poco de atractivo a nuestros datos.

Primeramente vamos a cambiar lacombinación de colores y tipos de letrapredeterminada, asignando valores a laspropiedades relacionadas con este aspec-to del control. La siguiente tabla des-cribe algunas de estas propiedades. Vertabla 1.

La siguiente figura muestra el con-trol resultante tras modificar los valo-res por defecto de algunas de estas pro-piedades. Ver figura 6.

De esta forma podemos personali-zar notablemente la apariencia de losdatos mostrados por el DataGrid, aun-

<<Utilizando el formato automático

Si nuestro control DataGridno va a requerir unas carac-terísticas muy específicasde colores, y si ademásvamos un poco justos detiempo, algo que habitual-mente suele ocurrir, siem-pre podemos optar porhacer clic en el enlaceFormato automático, situa-do en la parte inferior dela ventana de propiedades

del control. Esto provocará la apertura de un cuadro de diálogo, que nosofrecerá una lista de configuraciones de formato predefinidas para elDataGrid, con diversas combinaciones diferentes de la estándar, de maneraque rápidamente podremos modificar el aspecto del control.

Figura 3

Figura 4

Private Sub Form1_Load(ByVal sender As System.Object,

ByVal e As System.EventArgs)

Handles MyBase.Load

Me.SqlDataAdapter1.Fill(Me.DsNorthwind1, “Suppliers”)

End Sub

Figura 5

Page 36: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

36

dnm.plataforma<<

que, no obstante, en muchas ocasiones esto no será sufi-ciente. Supongamos por un momento que tenemos ennuestro formulario un DataSet que contiene dos tablas,y queremos mostrar cada una de ellas en el DataGridcon una configuración de colores y fuente distinta, tam-bién es posible que sólo queramos mostrar determina-dos campos de una tabla, con configuraciones de for-mato independiente para cada uno. A continuaciónveremos como abordar esta problemática.

Estilos de tabla y columna.Datos y presentación por separado

La maquinaria subyacente del control DataGrid,a través de las clases DataGridTableStyle y DataGrid-TextBoxColumn, permite implementar en este controluna efectiva separación entre los datos y su presenta-ción, aspecto este cada vez más presente en todos losámbitos del desarrollo de aplicaciones.

DataGridTableStyle es un tipo de la plataforma.NET Framework, cuya misión consiste en almace-nar la configuración de estilo para tabla de datos mos-trada dentro de un control DataGrid.

Por otra parte, el objetivo de la clase DataGrid-ColumnStyle reside en contener el estilo de visualiza-ción de una columna perteneciente a un estilo de tabladel DataGrid.

Gracias a este eficaz diseño, un único controlDataGrid puede disponer de varios estilos de visuali-zación diferentes para las distintas tablas que mues-tra, y cada uno de estos estilos puede mostrar lascolumnas de su tabla correspondiente con un alto gra-do de personalización.

El acceso a los estilos de tabla se realiza a travésde la propiedad TableStyles, que es una colección deobjetos DataGridTableStyle; y dentro de cada elemen-to de esta colección, el acceso a los estilos de colum-na se efectúa mediante la propiedad GridColumnStyles,que igualmente es una colección de objetos DataGrid-ColumnStyle, pertenecientes a la tabla.

DataGridColumnStyle es una clase abstracta de la quehereda DataGridTextBoxColumn, que será la que usemospara la creación de los estilos para las columnas.

Creación de un estilo de tabla Pero dejémonos de tanta verborrea y pasemos a

la acción. Vamos a crear un nuevo proyecto con elnombre GridEstilos, y en el formulario agregaremosun DataGrid que llenaremos con las filas de la tablaOrders, en la forma descrita al principio del artícu-lo. No es necesario establecer una configuración decolores inicial para el grid, aunque sí sería reco-mendable para comprobar mejor el efecto de cam-bio al aplicar los estilos de tabla y columna que pos-teriormente realizaremos.

Como siguiente paso, haremos clic en el botónde puntos suspensivos de la propiedad TableStyles delDataGrid, que abrirá el cuadro de diálogo Editor de lacolección DataGridTableStyle, en el que crearemos unestilo de formato para la tabla Orders.

Pulsando el botón Agregar, se añadirá un nuevoestilo de tabla vacío en el panel izquierdo, al que dare-mos el nombre gtsOrders, y cuyas propiedades esta-

Propiedad Descripción

CaptionText Título del control mostradoen su parte superior

CaptionBackColor, Color de fondo y frente,CaptionForeColor respectivamente, del título

del control

HeaderFont Tipo de letra para lostítulos de las columnas

GridLineStyle Muestra u oculta las líneasde cuadrícula

AlternatingBackColor Color para las filas alterna

HeaderBackColor Color de fondo de lostítulos de las columnas, ylos indicadores de fila

Tabla 1

Figura 7

¿Sabía que?

Cuando queremos ver en unDataGrid,una tabla de un DataSet cre-ado desde el diseñador del formularioa través de un DataAdapter, es preci-so llenar la tabla manualmente desdeel código de la aplicación con el méto-do DataAdapter.Fill, como vemos enel siguiente código fuente.

Me.SqlDataAdapter1.Fill

(Me.DsNorthwind1, “Suppliers”)

[ [

Page 37: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

37

dnm.plataforma<<

bleceremos en el panel derecho. La siguiente tabladescribe algunas de las propiedades de este tipo deobjeto.

La siguiente figura muestra el cuadro de diálogode creación de estilos para tablas.

Como habrá observado el lector, muchas de laspropiedades de un objeto DataGridTableStyle soncomunes a las del DataGrid, ya que cuando el estilode la tabla es aplicado sobre el control, los valores deestilo sustituyen a sus homólogos del grid.

Creación de estilos para las columnas

Una vez que hemos finalizado la creación del for-mato para la tabla, y permaneciendo en el cuadro dediálogo del estilo de tabla, haremos clic en el botónde puntos suspensivos de la propiedad GridColumn-Styles; esto nos llevará a un nuevo diálogo, que con elnombre Editor de la colección DataGridColumnStyle, seráel que usaremos para crear cada uno de los estilos decolumna de la tabla.

Pulsando el botón Agregar, se añadirá un nuevoestilo de columna vacío, al que daremos formato asig-nando valores en sus propiedades. En la siguiente tabladestacamos algunas de estas propiedades.

La siguiente figura muestra el cuadro de diálogode creación de estilos para columnas.

Propiedad Descripción

MappingName Nombre de la tabla delDataSet enlazado alDataGrid que se muestracuando el estilo de tabla esseleccionado

GridColumnStyles Colección de objetosDataGridColumnStyle, quecontiene los estilos deformato para cada una delas columnas mostradas porel estilo de la tabla en elDataGrid

HeaderFont Tipo de letra para lostítulos de las columnas

AlternatingBackColor Color para las filas alternas

HeaderBackColor Color de fondo de lostítulos de las columnas,los indicadores de fila

Tabla 2

Propiedad Descripción

MappingName Nombre de la columna de la tabladel DataSet, seleccionada al crearel estilo de la tabla.

Format Cadena con la expresión deformato para aplicar a los datos dela columna

Alignment Permite alinear el contenido de lacolumna a la izquierda, centro oderecha

HeaderText Cadena con el título a mostrar enla columna

NullText Cadena con el valor a mostrarcuando el campo de la tabla tengavalor nulo

Tabla 3

Figura 8

Figura 9

Page 38: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

38

dnm.plataforma<<

Para este ejemplo hemos creado estilos de colum-na sólo para algunos campos de la tabla Orders, por loque sólo estos serán mostrados en el grid. En gene-ral, a todas hemos asignado un nuevo título de cabe-cera en la propiedad HeaderText, y en las menciona-das a continuación, hemos establecido valores parti-culares:

• OrderDate. Al ser una fecha, en la propiedadFormat hemos asignado la cadena de formatodd/MMMM/yyyy.

• Freight. Al ser un valor numérico monetario,en la propiedad Format hemos asignado el valorC2, para que muestre el campo con el símbo-lo de moneda y dos decimales.

• ShipRegion. Como se trata de un campo que tie-ne valores nulos en algunas filas de la tabla, hemosasignado a la propiedad NullText la cadena SINREGIÓN, que será mostrada en lugar del literalnull que utiliza el DataGrid por defecto.

Una vez que hemos terminado de crear los esti-los de columna, aceptaremos todos los cuadros de diá-logo, y ejecutaremos el proyecto. La siguiente figuramuestra el resultado.

Utilizando un estilo diferente para cada tabla

Como habrá deducido el lector tras la demostra-ción anterior, si el DataSet enlazado al DataGrid con-tiene más de una tabla, podemos crear un estilo dis-tinto para cada una, con su combinación particular decolores y formato.

Para probar este comportamiento, eliminaremoslos valores de las propiedades DataSource y DataMemberdel grid del formulario; después agregaremos un nue-vo DataAdapter con una consulta contra la tablaCustomers; seguidamente borraremos del panel de com-ponentes del formulario el DataSet DsNorthwind1, yvolveremos a crearlo, pero esta vez incluyendo las dostablas correspondientes a los DataAdapter que tene-mos en el formulario. No olvidemos, por último, aña-dir al DataSet desde el código la nueva tabla con elmétodo Fill del último DataAdapter creado, tal y comomuestra el siguiente código fuente.

Volviendo al DataGrid, asignaremos otra vez elDataSet a su propiedad DataSource, pero no estable-ceremos valor en DataMember, así, al ejecutar se mos-trará un icono de selección de tabla. Añadiremos unestilo para la nueva tabla del DataSet, que configura-remos en la forma mostrada anteriormente, con unacombinación de colores y letra distinta, y al ejecutarla aplicación, cada vez que seleccionemos en el griduna de las tablas, esta será mostrada con su estilocorrespondiente como vemos en la siguiente figura.

Una tabla,dos estilos (o más)La arquitectura con la que está diseñado el con-

trol DataGrid es tan flexible, que partiendo de unDataSet con una única tabla para mostrar en el grid,podemos crear tantas configuraciones de estilo visua-les como sea necesario. Otra de sus ventajas reside enque cada estilo creado puede visualizar un grupo dis-tinto de campos de la misma tabla, escenario de tra-bajo este con el que nos podemos encontrar en algu-na ocasión. Los pasos para conseguir un DataGrid conestas características se describen seguidamente.

Supongamos que tenemos un proyecto con elnombre GridTablaDosEstilos, y un formulario con unDataSet que contiene la tabla Suppliers. Partimos delhecho de que en este ejemplo ya hemos creado un pri-mer estilo de tabla en un DataGrid , y vamos a crearuno adicional, usando ambos la misma tabla delDataSet como origen de datos.

Comenzaremos eliminando del estilo de tabla exis-tente en el grid, el valor de la propiedad MappingName;no se preocupe el lector, ya que esta acción no afecta-rá a los estilos de columna definidos. El motivo de estaacción radica en que no podemos tener simultánea-mente en un DataGrid dos estilos que apunten a la mis-ma tabla del DataSet.

Continuaremos creando un nuevo estilo en el gridpara la misma tabla Suppliers, pero con una configu-ración que sea distinta del primero; como propuesta,

Figura 10

Figura 11

Private Sub Form1_Load(ByVal sender As Object,ByVal e As System.EventArgs) Handles MyBase.LoadMe.SqlDataAdapter1.Fill(Me.DsNorthwind1, “Orders”)Me.SqlDataAdapter2.Fill(Me.DsNorthwind1, “Customers”)

End Sub

Page 39: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

39

dnm.plataforma<<

cada uno de los estilos puede estar basa-do en un diseño de colores diferente:tonos azules y verdes.

Una vez que terminemos el diseñode los estilos, añadiremos dos botonesen el formulario para cambiar de uno aotro estilo, y un tercer botón para queel grid muestre los datos sin estilos, conla configuración por defecto del con-trol. La clave de todo, como puede verel lector en el código fuente 1, seencuentra en manipular la propiedadMappingName de la colección de estilosdefinidos en el DataGrid.

La siguiente figura muestra el mis-mo DataGrid visualizando los datos conuno y otro estilo.

La clase DataGridBoolColumn

Cuando estamos añadiendo colum-nas a un estilo de tabla, habremos nota-do la presencia, junto al botón Agregar,de un botón con una flecha hacia aba-jo, que al ser pulsado nos ofrece elegirentre crear una columna del ya conoci-do DataGridTextBoxColumn o Data-GridBoolColumn. Esta última clase, queal igual que la primera hereda de Data-GridColumnStyle, nos permite mostraruna columna consistente en una casillade verificación para indicar tres esta-

dos: seleccionado, no seleccionado eindeterminado.

Los campos de tipo bit de una basede datos, son un buen candidato para

aplicar este estilo de columna, de modoque si mostramos un DataGrid de latabla Products, el campo Discontinued semostraría como vemos en la figura 13.

Pero no sólo los campos de tipo bitse pueden beneficiar del uso de este esti-lo de columna, ya que perfectamentepodemos aplicarlo a campos de otrostipos, como cadena de caracteres.

Si por ejemplo llenamos unDataGrid con la tabla Customers, y crea-mos una columna de este estilo para elcampo Country, asignando a la propie-dad TrueValue el valor France, y aFalseValue el valor Germany, los registrosde la tabla coincidentes con la primerapropiedad mostrarán la casilla marcada,mientras que para los coincidentes conla segunda propiedad, la casilla estarávacía; el resto de registros mostrarán lacasilla en el estado indeterminado.

Unos estilos con mucha “clase”

Y llegamos al final de nuestro cami-no confiando en que el lector hayaencontrado interesante todo lo que aquíacabamos de mostrar, así pues, espera-mos que a partir de ahora, “estilicen”más y mejor sus datos dentro del con-trol DataGrid.Figura 12

Private Sub btnVerdes_Click(ByVal sender As System.Object,

ByVal e As System.EventArgs)

Handles btnVerdes.Click

‘ quitar uno de los estilos y asignar el otro

Me.grdDatos.TableStyles(1).MappingName = “”

Me.grdDatos.TableStyles(0).MappingName = “Suppliers”

End Sub

Private Sub btnAzules_Click(ByVal sender As System.Object,

ByVal e As System.EventArgs)

Handles btnAzules.Click

‘ quitar uno de los estilos y asignar el otro

Me.grdDatos.TableStyles(0).MappingName = “”

Me.grdDatos.TableStyles(1).MappingName = “Suppliers”

End Sub

Private Sub btnPredeterminados_Click(ByVal sender As System.Object,

ByVal e As System.EventArgs)

Handles btnPredeterminados.Click

‘ no utilizar estilos en el grid

Me.grdDatos.TableStyles(0).MappingName = “”

Me.grdDatos.TableStyles(1).MappingName = “”

End Sub

Fuente 1

Figura 13

Figura 14

Page 40: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

40

en la serialización de XML con.NET, para los que no conozcan el concepto de seria-lización, explicaré algunos conceptos básicos. La seria-lización consiste en pasar una instancia de un objetoa datos que pueden ser guardados en un medio dealmacenamiento, como por ejemplo un fichero. Asítambién, existe la operación opuesta conocida comodeserialización, que consiste en crear una instancia deun objeto a partir de unos datos.

Centrándonos en el tema que nos interesa, laserialización de XML consiste en convertir una ins-tancia de un objeto en un XML, y la deserializaciónconsiste en convertir un XML en una instancia de unobjeto.

Quizá usted se está preguntando para qué puedeservir esto, pues bien, la serialización se utiliza porejemplo para guardar el estado de sesión en una pági-na web o para copiar objetos al portapapeles deWindows.

En el caso concreto de la serialización de XML,podemos utilizarlo además como una forma para sim-plificar la gestión de nuestros XML más complejos.

Aunque todos estos conceptos parecen muy abs-tractos, una vez que nos ponemos manos a la obra sonbastante sencillos, así que no daremos más rodeos.

Esquema XSDPara empezar crearemos un esquema XSD, que

es una definición genérica que sirve para determinarla estructura que debe tener un XML válido para eseesquema XSD, aunque la sintaxis para crear un XSDno es sencilla podemos utilizar cualquier aplicaciónde las muchas disponibles en el mercado para gene-rar XML, como por ejemplo XMLSPY. La creaciónde un XSD queda fuera del alcance de este artículo,

pero realizar un esquema XSD, con XMLSPY porejemplo, resulta una labor muy sencilla, pudiendoincluso generarlo automáticamente a partir de cual-quier XML que tengamos.

Por eso debemos asegurarnos que los XML quevamos a tratar son válidos para el esquema XSD; sialgún XML de los que vamos a serializar no es váli-do para el esquema XSD no se podrá realizar la seria-lización.

Creación automática de la claseUna vez que ya tenemos nuestro esquema XSD

tan sólo tenemos que ejecutar una instrucción en lalínea de comandos de Visual Studio .NET, obtenien-do una clase para poder serializar nuestro XML. Lainstrucción a ejecutar es la siguiente:

xsd.exe -c -l:c# -n:miclase miEsquema.xsd

XSD es una herramienta del SDK de .NETFramework, al que le pasamos como parámetros elnombre de la clase que vamos a generar y el nombre

Serialización de XML

Por Pedro PozoClikearclikear.com

<<

La serialización de XML consiste en pasar de un esquema XML a una clase y a la inversa,pudiendo así gestionar los datos XML como si fueran un objeto, simplificando así el tra-tamiento de XML complejos.

Antes de adentrarnos

En la serialización de XML lo másimportante es tener una buen

esquema XSD de los XML que queremos tratar

Page 41: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

41

dnm.xlm<<

<factura><nombre>Antonio Gutierrez</nombre>

<dni>12345678</dni><fecha>20/06/2003</fecha><productos>

<producto><numerodeserie>111111111</numerodeserie><nombreproducto>Teclado ordenador</nombreproducto><precio>12</precio>

</producto><producto>

<numerodeserie>2222222222</numerodeserie><nombreproducto>Monitor 17 pulgadas</nombreproducto><precio>560</precio>

</producto></productos>

</factura>

Fuente 1. XML de ejemplo

<factura><nombre>Antonio Gutierrez</nombre>

<dni>12345678</dni><fecha>20/06/2003</fecha><productos>

<producto><numerodeserie>111111111</numerodeserie><nombreproducto>Teclado ordenador</nombreproducto><precio>12</precio>

</producto><producto>

<numerodeserie>2222222222</numerodeserie><nombreproducto>Monitor 17 pulgadas</nombreproducto><precio>560</precio>

</producto></productos>

</factura>

<xs:schema xmlns:xs=”http://www.w3.org/2001/XMLSchema” elementFormDefault=”qualified”><xs:element name=”dni” type=”xs:string”/><xs:element name=”factura”>

<xs:complexType><xs:sequence>

<xs:element ref=”nombre”/><xs:element ref=”dni”/><xs:element ref=”fecha”/><xs:element ref=”productos”/>

</xs:sequence></xs:complexType>

</xs:element><xs:element name=”fecha” type=”xs:date”/><xs:element name=”nombre” type=”xs:string”/><xs:element name=”nombreproducto” type=”xs:string”/><xs:element name=”numerodeserie” type=”xs:string”/><xs:element name=”precio” type=”xs:decimal”/><xs:element name=”producto”>

<xs:complexType><xs:sequence>

<xs:element ref=”numerodeserie”/><xs:element ref=”nombreproducto”/><xs:element ref=”precio”/>

</xs:sequence></xs:complexType>

</xs:element><xs:element name=”productos”>

<xs:complexType><xs:sequence>

<xs:element ref=”producto” maxOccurs=”unbounded”/></xs:sequence>

</xs:complexType></xs:element>

</xs:schema>

Fuente 2. Esquema XSD correspondiente al XML de ejemplo.

Page 42: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

42

dnm.xlm<<

del fichero XSD que contiene el esque-ma XML.

También podemos observar quepodemos determinar el lenguaje en elque deseamos que nos genere la clase,que en este ejemplo es C#.

Si vemos el código generado en laclase comprobaremos que se ha genera-do una clase por cada nodo del XML ylos elementos de cada nodo están repre-sentados por propiedades de la clase.Además podemos comprobar que existenatributos de metadatos personalizadosjunto a algunas declaraciones de la clase,como por ejemplo el campo producto tie-ne el siguiente atributo de metadatos[System.Xml.Serialization.XmlElementAttribute(“producto”)], que sirve para que elserializador genere un array de elemen-tos de tipo producto.

Serialización y deserializaciónYa tenemos creada nuestra clase a

partir del esquema XSD, ahora sólo nosqueda leer el fichero XML que desea-mos deserializar y podemos comprobarlo sencillo que resulta trabajar con losdatos de nuestro XML una vez que estándeserializados en un objeto.

Para realizar los procesos de seria-lización y deserialización utilizaremosla clase XmlSerializer de .NET tal ycomo se indica en el siguiente códigode ejemplo en C#. Ver fuente 4.

A partir de ahora ya tenemos nues-tro objeto factura, en el cual están todoslos datos referentes al XML deseriali-zado, accediendo a las propiedades deeste objeto podemos leer todos losnodos de nuestro XML.

Por ejemplo, si queremos leer elnodo fecha tan sólo tendremos que poneren nuestro código:

miFactura.fecha

namespace miclase{using System.Xml.Serialization;

/// <remarks/>[System.Xml.Serialization.XmlRootAttribute(Namespace=””, IsNullable=false)]public class factura{

/// <remarks/>public string nombre;

/// <remarks/>public string dni;

/// <remarks/>[System.Xml.Serialization.XmlElementAttribute(DataType=”date”)]public System.DateTime fecha;

/// <remarks/>[System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)]public producto[] productos;

}

/// <remarks/>[System.Xml.Serialization.XmlRootAttribute(Namespace=””, IsNullable=false)]public class producto{

/// <remarks/>public string numerodeserie;

/// <remarks/>public string nombreproducto;

/// <remarks/>public System.Decimal precio;

}

/// <remarks/>[System.Xml.Serialization.XmlRootAttribute(Namespace=””, IsNullable=false)]public class productos{

/// <remarks/>[System.Xml.Serialization.XmlElementAttribute(“producto”)]public producto[] producto;

}}

Fuente 3. Clase generado a partir del esquema XSD.

Fuente 4

Tan sólo lanzando una instrucción en la línea

de comandos obtenemos una clase para gestionar

nuestro XML

TextReader reader = new StreamReader(fichero);XmlSerializer serializer = new XmlSerializer(typeof(factura));factura miFactura = (factura)serializer.Deserialize(reader);reader.Close();

Page 43: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dnm.xlm<<

O si queremos acceder al elemen-to nombreproducto de nuestro segundonodo de productos tendremos queponer en nuestro código:

miFactura.producto[1].nombreproducto

Como hemos podido comprobaracceder ahora un XML resulta muy sen-cillo, y la cantidad de código a escribir

para leer cualquier XML se reduce nota-blemente.

Pero la serialización no sólo nosofrece ventajas para leer XML, tambiénnos ofrece muchas ventajas a la hora deescribir un XML.

Como ya explicamos con anterio-ridad, para escribir un XML en un fiche-ro realizaremos una serialización de unainstancia de nuestro objeto.

Veamos un ejemplo en C# en elfuente 5.

En el código del fuente 4 podemoscomprobar cómo vamos escribiendo laspropiedades de nuestro objeto, y poste-riormente rellenamos el array de pro-ductos. Pues bien, estas propiedades queestamos escribiendo serán posterior-mente los elementos de nuestro XML ycada posición del array de productos seconvertirá en un nodo de nuestro XML.

Para serializar nuestro objeto ypasarlo a un fichero XML tan sólo debe-mos utilizar de nuevo la clase serializerde .NET. Así hemos conseguido de for-ma sencilla y con una clara orientacióna objetos escribir un fichero XML.

ConclusiónEn resumen, hemos podido com-

probar como la serialización, además depodernos ser útil para guardar el esta-do de sesión en una página Web o paracopiar objetos al portapapeles deWindows, es también muy útil para tra-tar con XML.

La serialización de XML nos aho-rra escribir código y nos simplifica lalectura y escritura de los mismos.

factura miFactura = new factura();miFactura.nombre = “Antonio Gutierrez”; miFactura.dni = “1111111111”;miFactura.fecha = DateTime.Now;

miFactura.producto = new productos[2];miProducto = new producto();miProducto.nombreproducto = “teclado”;miProducto.numerodeserie = “1111”;miProducto.precio = 12; miFactura.producto[0]=miProducto;miProducto.nombreproducto = “raton”;miProducto.numerodeserie = “2222”;miProducto.precio = 14; miFactura.producto[1]=miProducto;

TextWriter writer = new StreamWriter(fichero);serializer.Serialize(writer, miFactura);writer.Close();

Fuente 5

noticias.noticias.noticias.noticias

Microsoft ha puesto a disposición de los usuarios la beta pública dede la próxima versión de Visual FoxPro, la 9.0, llamada en clave“Europa”.

En una carta de Ken Levy, VS Data Product Manager, a los usua-rios de FoxPro en el pasado mes de junio, Microsoft aclaraba su posi-ción con respecto a FoxPro:

“Algunas personas nos han preguntado si verán incrementadoel marketing alrededor de Visual FoxPro 9.0. Nosotros hemos decla-rado públicamente en el pasado que el presupuesto gastado en VisualFoxPro es relativo al negocio de Visual FoxPro, y que el esfuerzo demarketing alrededor de Visual FoxPro es y permanecerá similar a loque ha sido en los últimos años. Microsoft no tiene planes para inte-grar Visual Foxpro dentro de Visual Studio .NET, pero en cambioestamos trabajando en añadir muchas de las grandes funcionalidadesencontradas en Visual FoxPro dentro de las siguientes versiones deVisual Studio, tal y como hemos añadido grandes funcionalidades deVisual Studio dentro de Visual FoxPro. La estrategia de Microsoft esque el buque insignia de la herramienta de desarrollo sea Visual Studio;se dedican significamente más recursos a Visual Studio.

La dirección de la estrategia de Microsoft con nuestros pro-ductos basados en la plataforma .NET es que sea Visual Studio laherramienta de desarrollo para las aplicaciones basadas en .NET. Siquieres hacer programación .NET, deberías usar Visual Studio.Microsoft está mejorando el soporte XML en Visual FoxPro 9.0 locual también mejorará la interoperatibilidad con .NET. Estamosañadiendo también nuevos tipos de datos a Visual FoxPro 9.0 loscuales mejorarán su siempre excelente interoperatibilidad de VisualStudio 2005 y la conectividad con SQL Server 2005.”

Al menos, Microsoft, se ha comprometido ha seguir soportan-do la versión 9 de Visual FoxPro hasta 2014.

“Nosotros planeamos lanzar oficialmente Visual FoxPro 9.0 enLas Vegas, en el Kick Off del Visual FoxPro DevCon 2004 el 29 deseptiembre de este año” añade Ken Levy en dicha carta.

Si quiere ver el texto completo (en inglés) de dicha carta pue-de visitar: http://msdn.microsoft.com/vfoxpro/letters/. Desde esteenlace podrá ir a la página de descarga esta beta.

El sitio oficial del Visual FoxPro DevCon 2004 es: http://advisorevents.com/CMX0409p.nsf

Visual FoxPro 9.0 beta (nombre en clave “Europa”) disponibleLa versión definitiva se presentará el 29 de septiembre en Las Vegas en el Visual FoxPro DevCon 2004

Page 44: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

44

aplicaciones no es cuestiónbaladí. Aunque creamos que hemos tenido en cuen-ta todas las posibilidades en el código es bastante pro-bable que no sea así en realidad. Toda medida adi-cional que tomemos para proteger el sistema nuncaestará de más.

Por otra parte existe una peligrosa tendenciapor parte de algunos desarrolladores Web a pen-sar que, dado que los responsables de sistemas vana proteger muy bien los servidores (con cortafue-gos, IDS, y demás parafernalia), ya se pueden rela-jar. Nada más lejos de la realidad. De poco sirve unestupendo cortafuegos si luego los ataques se rea-lizan a través del puerto 80 (HTTP, abierto, obvia-mente) y nuestra aplicación no gestiona bien cier-tas peticiones que pueden comprometer recursosdel sistema. Es indispensable una adecuada confi-guración de todos los aspectos de IIS para mini-mizar los riesgos.

Aunque de antemano se pueda pensar que es unatarea sencilla, comprobará que hay mucho más delo que parece. En la serie de artículos que iniciamosahora trataremos aspectos como la configuración depermisos en el sistema de archivos, la autenticación,el análisis de vulnerabilidades y el uso de herra-mientas externas para mejorar algunos aspectos dela seguridad.

Autenticación en IISEl primer proceso importante que debemos con-

siderar en lo que a la seguridad se refiere es siempre la

autenticación o determinación de la identidad de losusuarios. Internet Information Server dispone de variosmétodos para autenticar usuarios y controlar el acce-so a los recursos que están bajo su supervisión. Paraverlos acceda a la pestaña de Seguridad de directorios enel diálogo de propiedades para un objeto desde la con-sola de administración de IIS (figura 1). La autentica-ción, como veremos más adelante, no sólo sirve paraidentificar a los usuarios sino que, además, implica en

Seguridad de Internet Information Server (I)

Por José Manuel Alarcón AguínASP y ASP.NET MVPwww.krasis.com

Muchos programadores tienden a considerar la seguridad de sus aplicacionesúnicamente desde el punto de vista del código (si piensan en ella en absolu-to). En realidad hay muchos otros ámbitos que proteger. En el caso de las apli-caciones Web que se ejecutan bajo IIS, la adecuada configuración de éste esfundamental para asegurar la protección de aquellas, y por ende, la de todo elsistema.

La seguridad de nuestras<<

Figura 1.- Desde la pestaña de seguridad de directoriosde las propiedades de un recurso IIS podemos controlar

los métodos de autenticación de los usuarios que acceden a éste.

Page 45: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

muchos casos delegar en el sistema operativo el con-trol de los permisos de acceso a los recursos.

Los métodos de autenticación disponibles semuestran en la captura de la figura 2. A este diálo-go se accede pulsando sobre el botón Modificar dela figura 1.

Acceso anónimo

Si tenemos marcada la casilla de acceso anóni-mo en la ventana de la figura 2, cuando un usuarioacceda a un recurso permitido por IIS, no necesita-rá introducir credenciales para identificarse.

Para impedir el acceso anónimo a una aplicaciónWeb (o a un directorio o carpeta virtual de ésta) tansólo desmarque la casilla correspondiente. A partirde ahora todos los usuarios deberán identificarse parapoder acceder al recurso y entran en juego los diver-sos métodos de autenticación.

Métodos de autenticación disponibles en IIS

En la versión 4 de IIS sólo existían dos méto-dos de autenticación posible (básica y desafío-res-puesta). A partir de IIS 5 existen tres métodosteniendo uno de ellos además dos subtipos, por loque en total disponemos de cuatro posibilidades.En la figura 2 puede ver las casillas de opción paraestos métodos. En Windows Server 2003, IIS 6incluye también el método de autenticación de.NET Passport que no vamos a estudiar por tra-

tarse de un método totalmente aparte que ademásnecesita el uso de un SDK.

Autenticación básica

El más simple de los métodos disponibles es,obviamente, el que se denomina Autenticación Básica.En este caso el servidor envía una petición de iden-tificación al navegador Web del usuario mediante unacabecera HTTP. Éste muestra al usuario un cuadrode diálogo como el de la figura 3 para preguntarle sunombre y contraseña de acceso. Una vez introduci-da la información, el navegador la codifica con elalgoritmo Base64 y la envía a través de la red paraque IIS la valide y pueda efectuar la suplantación delusuario (que estudiaremos en breve). También es posi-ble escribir aplicaciones que soliciten autenticaciónbásica y usen las credenciales enviadas para validar-las contra una base de datos u otro sistema propio.

El envío de la información del usuario a travésde la red es el mayor punto conflictivo que tieneeste proceso de autenticación. La información via-ja codificada en formato Base64. Este algoritmocodifica (pero no cifra) la información para facili-tar su envío a través de la red. Debido a ello cual-quier persona que disponga de un programa ras-treador de paquetes IP puede obtener la informa-ción y descodificarla para conocer nombres de usua-rio y claves de su sistema IIS, ya que la decodifica-ción Base64 es muy sencilla de implementar.

Además de este obvio problema existe la posibi-lidad de que los datos de usuario no lleguen al servi-dor adecuado. Es decir que aunque se realiza la auten-ticación del usuario, no existe forma de legitimar alservidor al que se envía la petición. Alguien podríautilizar este hecho para suplantar al servidor lícito yobtener información ilegítimamente.

A pesar de todo hay ocasiones en las que no que-da más remedio que utilizar la autenticación básica.Por ejemplo, es necesario utilizar esta autenticacióncuando se va a acceder al servidor desde un entorno

Figura 2.- Existen diversos métodos de autenticación ydeberemos escoger el más adecuado en función del

entorno en el que va a trabajar nuestra aplicación, tantoen los clientes como en el servidor. Figura 3.- Diálogo de autenticación básica

en Windows 98. Funciona con cualquier navegador o sistema operativo.

dotN

etM

anía

<<

45

dnm.servidores.iis<<

Page 46: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

46

dnm.servidores.iis<<

heterogéneo (como puede ser Internet o una Intraneten la que coexisten sistemas UNIX y Windows) don-de existen diversos tipos de navegadores. Este méto-do es el único universalmente entendido y es sopor-tado por todos.

Autenticación de texto implícita

Se trata de una mejora de la anterior para asegu-rar la transmisión de contraseñas por redes públicas.En este caso en lugar de enviarse la contraseña sincifrar, se transmite un resumen digital de la misma, loque se conoce comúnmente como Hash. El algoritmoutilizado es el MD5, y partir de un resumen digitalMD5 no es posible obtener la cadena que lo generóya que utiliza algoritmos de una sola vía (sin inversa).

Este método aumenta notablemente la seguridadde la transmisión pero sigue sin resolver el problemade la validación del servidor interlocutor. Además, siun atacante logra capturar el tráfico y reproducirlopodrá suplantar igualmente a los usuarios.

Este modo de autenticación sólo está soportadopor Internet Explorer 5.0 o Netscape 6.0 o superior(está basado e el protocolo HTTP 1.1, RFC 2617).Otro problema es que IIS debe estar ejecutándose enun controlador principal de dominio que almacene enclaro las contraseñas de los usuarios dentro delDirectorio Activo, aumentando las necesidades de pro-tección de éste. Existe una variante de este método lla-mada “Autenticación de texto implícita avanzada” quealmacena también las claves en el servidor en forma deresumen digital, no como texto en claro, lo que aumen-ta la seguridad en caso de que el servidor se viese com-prometido. Sin embargo esta posibilidad sólo está dis-ponible en Windows Server 2003, ya que en Windows2000 sólo se admite la versión simple (aunque indiqueotra cosa).

Autenticación de Windows Integrada

Este método de autenticación es el más seguro delos disponibles en IIS 5.0. Posee dos variantes (Kerberosy NTLM) en función del tipo de cliente y del tipo deservidor que entren en juego en la autenticación. EsIIS el encargado de seleccionar la variante en cada casoconcreto.

Cuando el servidor es un controlador de domi-nio (PDC) con Directorio Activo y el navegador esInternet Explorer 5.0 o superior se utiliza la varianteKerberos v.5, que usa este conocido protocolo basadoen tickets para efectuar la autenticación. Este métodoofrece un alto grado de seguridad. La explicación decómo funciona el protocolo Kerberos se sale del ámbi-to de este artículo.

Cuando el servidor Web no es un PDC o no tie-ne habilitado el DA se utiliza la variante NTLM de laautenticación Windows integrada. Sólo Internet

Explorer en cualquiera de sus versiones soporta estemétodo de autenticación, lo cual no será problema siel entorno es homogéneo y lo podemos controlar, peroinvalidará esta opción en el caso de otros navegadores.

NTLM es también conocido como autenticaciónde desafío y respuesta de Windows NT y en realidadviene heredado de este sistema operativo, siendo antesel proceso predeterminado de validación de usuarios.

El método desafío/respuesta no envía ni recibe enningún momento la clave del usuario por la red.Básicamente para conseguirlo emplea el algoritmoMD4 estándar para generar un valor Hash único de128 bits para cada pareja de usuario y contraseña. Esteresumen digital se compara con el que está guardadoen el servidor para comprobar la autenticidad de laidentificación.

En la figura 4 se puede ver paso a paso como es efec-tuado el proceso de autenticación Desafío/Respuesta:1. El cliente realiza una petición HTTP anónima al

servidor web.2. El servidor responde con un código HTTP 401 de

acceso denegado e incluye en la cabecera informa-ción acerca de los métodos de autenticación per-mitidos.

3. El cliente vuelve a pedir la página pero diciendoque quiere usar autenticación desafío/respuesta.

4. El servidor responde de nuevo con un HTTP 401pero incluye esta vez un valor aleatorio de 16 bytespara el cliente. Este valor es lo que se llama desafío.

5. El navegador pide al usuario su nombre y su clavey obtiene el hash para esos datos. A continuación

Figura 4.- El proceso de autenticación basado en desafío-respuesta.

Page 47: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

cifra el desafío usando este hash comoclave para el proceso de encriptación,con lo que se obtiene otro hash únicopara ese valor de desafío y ese usua-rio. Este nuevo hash generado se envíaal servidor junto con el nombre deusuario por la misma conexión pordonde se recibió (ésta se mantiene enestado keep alive), lo cual asegura laautenticidad del servidor.

6. El servidor envía el hash recibido, elnombre de usuario y el valor de desa-fío al controlador primario de domi-nio (de haberlo). El PDC cifra eldesafío con el hash del usuario que seguarda en la base de datos SAM delsistema o en el Directorio Activo.

7. Si el hash generado en el PDC coin-cide con el que envió el cliente quie-re decir que la autenticación ha teni-do éxito y se envía la página solicita-da en caso de que el usuario tengapermisos suficientes.

Algún lector en este punto podríapreguntar: si lo único que se conoce delusuario es su hash que por definición nose puede descifrar, ¿por qué no enviar-lo directamente en lugar de obtener unonuevo a partir de éste y del desafío? Sise hiciese de este modo cualquierapodría interceptar el hash del usuario yluego utilizarlo para hacerse pasar porél, tal y como pasaba en el método ante-rior. Con el método descrito sólo pue-de autenticarse aquel que tenga el hashy el desafío enviado por el servidor, quecambia en cada ocasión, con lo que lascosas se complican. Para entenderlomejor se podría asimilar en cierto modoa un algoritmo de clave pública en elque la contraseña del usuario sería unaclave privada y el desafío enviado por elservidor una clave pública que va cam-biando aleatoriamente.

Internet Explorer efectúa todo elproceso de modo transparente usandoel nombre y la contraseña que el usua-rio utilizó para entrar en la máquinacliente, y sólo si falla en este primerintento muestra un cuadro de diálogopara pedir otros datos diferentes. Estehecho puede hacer que parezca que aveces un acceso a IIS ha sido anónimocuando no es así en realidad.

La autenticación integrada deWindows posee la limitación adicional

de no funcionar a través de conexionesproxy, por lo que habrá que tenerlo encuenta en caso de que nuestros usuarioslas utilicen.

En definitiva, siempre que podamosdeberemos usar la autenticación inte-grada. Sin embargo esto sólo será posi-ble si se accede directamente al servi-dor (sin usar un Proxy o un cortafue-gos) y en sistemas con Windows 2000o superior. Debido a estas restriccionesen la práctica este método se usa sólo enIntranets, dejando para Internet nor-malmente la autenticación básica.

SSL y Certificados digitalesUna buena opción para habilitar la

autenticación de usuarios segura e inde-pendiente del navegador consiste encombinar el método de autenticaciónbásica descrito anteriormente con uncertificado digital de servidor. De estemodo el usuario se asegura de que seestá comunicando con el servidor ade-cuado, y por otro lado se consigue quela información en claro que circula nor-malmente codificada como base64 setransmita ahora cifrada gracias al usodel algoritmo de clave pública que con-lleva el uso de este tipo de certificados.Del mismo modo, en entornos querequieran una alta seguridad se puedeexigir a los usuarios el empleo de certi-ficados digitales en el lado del cliente.

Puede obtener información deta-llada sobre este proceso consultando elartículo “Configuración de sitio Webseguro con Certificado de clientes” dePedro Gómez en el número 4 de mayode 2004 de dotNetManía.

Suplantación de usuariosIIS no es más que otra aplicación

que se ejecuta sobre el sistema operati-vo, por lo que es éste en última instan-cia el que se ocupa del nivel más bajo dela cadena de la seguridad. En el caso quenos ocupa dicho nivel lo constituye elsistema de archivos.

En Windows, cada proceso se eje-cuta dentro de su propio contexto deseguridad. Cuando un proceso accedeal sistema de archivos NTFS los per-misos se le otorgan en función del con-texto en el que se ejecute. Normalmente

si un proceso lanza otro subproceso éstese ejecutará bajo el mismo contexto deseguridad. Existen casos sin embargo enlos que, por razones de seguridad, unproceso puede producir otros procesosque trabajen bajo condiciones de segu-ridad diferentes. Esto es lo que ocurrecon IIS. Éste trabaja bajo el contexto deseguridad del sistema, esto es, como sise tratase del usuario System. Sin embar-go cuando IIS ejecuta una aplicaciónASP/ASP.NET, inicia un nuevo proce-so bajo un contexto de seguridad dife-rente, efectuando lo que se denominauna suplantación de usuario. De estemodo si el código de servidor de unapágina (o alguno de los componentesque ésta emplee) intenta acceder al dis-co duro u otro recurso del sistema, lohará con los permisos del usuario al queestá suplantando el proceso bajo el quese ejecuta, es decir, bajo el contexto deseguridad de dicho usuario. Este párra-fo, aunque algo enrevesado, es funda-mental para entender las implicacionesde seguridad en el sistema de archivos.

Suplantación de usuarios en ASP

Cuando nuestra aplicación utilizapáginas ASP tradicionales, éstas se eje-cutan suplantando al usuario que estéautenticado contra IIS. Es decir, si des-habilitamos el acceso anónimo las pági-nas se ejecutarán con los mismos per-misos que tenga la cuenta de usuario ala cual se está suplantando. De estemodo si las credenciales que se intro-ducen son las de un administrador lapágina tendrá las capacidades de unadministrador (un verdadero peligro).

En el caso de estar accediendo anó-nimamente existen dos cuentas especia-les en el sistema llamadas IUSR_Nombre-Maquina e IWAM_NombreMaquina quese usan para representar a un usuario anó-nimo. De este modo cuando un usuariono autenticado utiliza una página ASP delservidor, ésta se ejecuta como si se trata-ra del usuario IWAM o del usuario IUSR.El que se use uno u otro depende del tipode aislamiento de procesos que se hayaelegido en la configuración del servidor.Este ajuste se hace también desde la ven-tana de la figura 1, y más concretamentea través de la lista desplegable de la par-te inferior que reza Protección de aplicación.

dotN

etM

anía

<<

47

dnm.servidores.iis<<

Page 48: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

48

dnm.servidores.iis<<

Si escogemos la protección Baja (proceso IIS), IIS usaráa cuenta IUSR para personificar al usuario anónimo. Enlos otros dos casos (protecciones Media y Alta que sonlas recomendadas) será la cuenta IWAM la utilizada paraejecutar los procesos en el servidor. Sabiendo esto pode-mos controlar mucho mejor los permisos de acceso arecursos del sistema, tema que trataremos en una pró-xima entrega.

Suplantación de usuarios en ASP.NET

En ASP.NET las cosas cambian mucho respectoal antiguo modelo. Dependiendo del sistema opera-tivo que estemos utilizando para el servidor y de losajustes establecidos en el archivo web.config varía lacuenta utilizada para ejecutar las páginas ASP.NET.

En la situación por defecto e independientemen-te de que haya autenticación o el acceso sea anónimo,las páginas ASPX se ejecutan bajo el mismo contextode usuario. Esto contrasta mucho con el comporta-miento de ASP y desde luego es mucho más segurocomo veremos enseguida. Si el sistema operativo esWindows 2000 (o XP) el proceso se ejecuta bajo elcontexto de la cuenta especial ASPNET (ver figura 5).Ésta tiene muy bajos privilegios y acceso a pocas cosaspor lo que, por omisión, las aplicaciones se ejecutaránen un contexto razonablemente seguro. En WindowsServer 2003 la cuenta ASPNET no existe y, en las mis-mas condiciones, se ve sustituida por la cuenta Serviciode Red, nueva en este sistema operativo. La cuentaServicio de Red se creó en la versión 2003 para ejecu-tar multitud de servicios que requerían bajos privile-gios y para aumentar de este modo su seguridad.

Queda todavía una parte muy importante por verrespecto a este tema, y es la influencia del archivoweb.config en la suplantación. Existe una etiqueta en elarchivo de configuración cuya sintaxis es la siguiente:

Gracias a ella es posible decidir bajo qué proce-so se ejecutará nuestro código ASP.NET con auten-ticación Windows. Si usamos la siguiente sintaxis:

Obtendremos el comportamiento por defecto.Sin embargo si escribimos en web.config lo siguiente:

El comportamiento será el mismo que en el casodel ASP 3.0 clásico que acabamos de estudiar. Por finsi empleamos la sintaxis completa así:

Lo que conseguiremos es que, independiente-mente del usuario que se haya autenticado los proce-sos de ASP.NET se ejecuten bajo la cuenta especifi-cada en los dos últimos atributos y disfruten de susmismos permisos (mucho cuidado con el uso que sehace de esta característica).

Es muy fácil comprobar todo lo que estamos estu-diando en este apartado mediante una sencilla apli-cación Web. Cree una página ASPX con dos etique-tas (Label1 y Label2). En el evento Load de la páginaescriba el siguiente código:

Ahora pruebe a modificar los ajustes de autenti-cación de IIS y a cambiar la etiqueta <identity> enweb.config para comprobar lo expresado en los párra-fos anteriores. Verá que es muy interesante.

En resumenEn esta primera entrega hemos visto los diversos

métodos de autenticación que nos ofrece IIS y cómosu uso afecta a la seguridad de nuestras aplicacionesASP y ASP.NET. Con estos fundamentos bien asen-tados explicaremos en el próximo artículo lo que esnecesario saber acerca de la autorización y cómo con-figurar de manera segura el sistema de archivos delservidor.

Figura 5.- En Windows 2000/XP existe un usuario especial bajo el quese ejecutan todos los procesos de ASP.NET por defecto.

<identity impersonate=”true|false”

userName=”dominio\usuario” password=”clave”/>

<identity impersonate=”true “userName=”MiDominio\MiUsuario”password=”miclave”/>

Label1.Text = “Usuario que hizo la petición: “ + User.Identity.Name;

Label2.Text = “Cuenta bajo la que se ejecuta el proceso: “ + System.Security.Principal.WindowsIdentity.GetCurrent().Name;

<identity impersonate=”false”>

<identity impersonate=”true”>

Page 49: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

49

Tech•Ed Europe 2004:Crónica de un tiempo de espera

dnm.directo.eventos<<

algo así como “mucho roadmap y pocasnueces” (lo decía en inglés, afortunadamente). Se refe-ría, desde luego, a que ninguna de las grandes nove-dades venideras (Yukon, Whidbey Beta 1, WindowsXP SP2, ó Longhorn) se ha podido ver in extenso eneste Tech•Ed 2004. Sobre todo en lo que se refiere aLonghorn. Pero parece que Microsoft no quiere exten-derse más de momento en la publicidad del próximoS.O. Así pues, esta edición del Tech•Ed ha resultadoespléndida en algunos aspectos, pero algo parca en

novedades. Sin duda, el próximo año veremos muchasmás, por que 2005 será el año de dos grandes lanza-mientos: SQL-Server 2005 y Visual Studio 2005.No obstante, volvemos con una sensación positiva,basada principalmente en los siguientes argumentos:• La fuerza de los nuevos servidores: (se han visto exce-

lentes ponencias sobre Biztalk Server 2004, InternetSecurity and Acceleration Server 2004 y MapPointLocation Server) y la capacidad de convocatoria quelos temas relacionados con ellos ha tenido. Tambiénhay que reseñar la iniciativa conjunta Microsoft–HPSecurity Business and Technology Unit. (De hecho,tuvimos oportunidad de charlar con Steve Godfrey,Secure Solutions Business Manager de HP, cuyas opi-niones al respecto publicaremos próximamente).

• Excepción hecha de una sesión especial de SamDiStassio, Group Product Manager de WindowsServer, sobre las diversas novedades esperadas paralos próximos 18 meses, y otra de migración

Unix/Windows, de Mauro Meanti, hay que resal-tar aquí la ausencia de ponencias sobre Longhorn,si bien las ha habido excelentes en otros aspectosdel sistema operativo, y en especial en los apartadosrelacionados con la seguridad. Nos comentabaDavid Carmona, de Microsoft Ibérica, que la com-parativa de los kernel de Linux y Windows que hizoMark Russinowitch, fue de lo mejor del evento.No obstante, Microsoft sigue afirmando (en pala-bras de Mauricio Ulargui, director de la División.NET en España), que no tienen prisa, que es unacambio enorme y a largo plazo y que no verá la luzhasta que realmente este preparado.

• La importancia gradual que las herramientas demodelado están alcanzando, incluyendo los mar-cos de trabajo como MSF y tecnologías asocia-das, como Extreme Programming. Aunque el pro-

<<Decía un delegado danés

Steve Godfrey,Secure Solutions Business Manager de HP

Prashant Sridharan uno de los responsables del equipo dedesarrollo deVisual Studio Team System

Marino Posadas

Page 50: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

ducto no aborda especialmente estasúltimas, lo que se ha podido ver delllamado Visual Studio Team System,la auténtica novedad de Visual Studio2005, es realmente prometedor, y yaestamos esperando esa Beta 1 anun-ciada para mediados de Julio y dis-ponible ya en MSDN on-line, parasuscriptores. Es una línea de expan-sión del producto que se anunció enel Tech•Ed de San Diego, y que per-mite reducir la complejidad del dise-ño de arquitecturas orientadas a ser-vicios y facilita la colaboración entrelos miembros de un equipo de desa-rrollo de una forma totalmente con-figurable y extensible apoyada enmecanismos de diseño y/o genera-ción de código (como es lógico, tra-tamos de saber algo más de primeramano, y entrevistamos a PrashantSridharan uno de los responsablesdel equipo de desarrollo de VisualStudio Team System, quien enfatizó laimportancia de los servicios Web, yla forma en la que las nuevas herra-mientas de modelado permiten sudiseño e implantación. En un próxi-mo número estará disponible). Decualquier forma, nos pareció queVSTS es la respuesta adecuada porparte de Microsoft a una sensacióncreciente de interés en las técnicasde análisis y la comprensión de lasnuevas arquitecturas basadas en SOA(Arquitectura Orientada a Servicios).Clemens Vasters, volvió a hablarsobre el tema, con su particularvisión, no exenta de polémica.

• La nueva gama de productos Express(Visual C# 2005 Express Edition,Visual C++ 2005 Express Edition,Visual Basic 2005 Express Edition,Visual J# 2005 Express Edition, VisualWeb Developer 2005 Express Editiony SQL-Server Express Edition), comoversiones muy centradas en el desa-rrollo RAD, y muy optimizadas paraexigir la mínima codificación posible,gracias a sus excelentes asistentes yherramientas visuales. Según el mar-keting, son herramientas dirigidas aestudiantes y a independientes de laprogramación, que pueden permitir-les un rápido aprovechamiento de lascapacidades de .NET en el aprendi-zaje y desarrollos simples.

Los prolegómenos:ubicación,organización y estructura

Aunque a los hispanos nos guste másBarcelona, reconocemos que Ámster-dam es un excelente sitio para un even-to de este tipo. Estos días, los más de6.500 asistentes al evento hemos podi-do pasear tranquilamente por sus callesy disfrutar de uno de los ambientes máscosmopolitas de Europa. Por cierto, elaño que viene repetirá ubicación, aun-que dicen que —de ahora en adelante—podría ser un mano a mano entreBarcelona y Ámsterdam.El RAI Center o centro de convencio-nes, destaca por su amplitud, aunque sucompleja estructura confundía a más deuno, al principio. Bien organizado, —aun-que nos gustó más Barcelona, en eseaspecto— desde el comienzo, observa-mos una mayor actividad comunitaria entodos los aspectos. Sitios como elMVP/MCT Lounge donde nos reunía-mos a veces el grupo de españoles, o losrepresentantes de la Microsoft AcademicAlliance. El notable esfuerzo que los res-ponsables están realizando por dar aconocer la plataforma .NET en Uni-versidades, redunda en un interés nota-ble por la plataforma, y múltiples pro-yectos asociados. Los creadores de laDynamic Tour Guide y el juego Gonopolynos mostraron de primera mano estosproyectos en funcionamiento. A esto debemos añadir las amplias salasde comunicaciones, espacio de prensa,“hands-on-labs”, que tuvieron una asis-tencia masiva, y una zona de sponsors, másactiva que otras veces, donde se hacíandemos constantes y programadas de dife-rentes productos de terceras partes.

Las ponenciasComo es sabido Tech•Ed agrupa a lomejorcito de la evangelización, y la penaes que muchas veces, hubiéramos queri-do estar en varios sitios a la vez. JimGray, Don Box, David Chapell, RafalLuckawiecki, Juwal Lowy, ClemensVasters, Dino Esposito, FernandoGuerrero, Keith Ballinger, ScottGuthrie, Dave Mendlen, Cris Flores,Kalen Delaney, Peter Sollich, DavidWebster, Brian Goldfarb y muchosotros a los que dio su entrada JonathanMurray en una Keynote inicial, en la queparticiparon, entre otros, PrashantSridharan, y el profesor Jürg Cathomas,del SFIT de Zurich, ciego de nacimien-to, y que hizo una fantástica demostra-ción de uso del programa JAWS. El pro-fesor Cathomas es ingeniero electróni-co, analista de sistemas y consultor téc-nico de la Swiss Federation of the Blind andVisually Impaired, equivalente a la ONCEespañola, con quien mantiene contactossiempre centrados en los avances de acce-sibilidad de software.Aparte de las ponencias de Jim Gray yDino Esposito a los que entrevistamos

dotN

etM

anía

<<

50

dnm.directo.eventos<<

David Chapell, Rafal Luckawiecki, Michele LerouxBustamante, Juwal Lowy y Clemens Vasters

Pablo Abbate, Ricardo Varela y David Salgado

Page 51: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

y cuyos comentarios resumimos más aba-jo, las de Don Box (sobre arquitecturaSOA y consejos asociados a los proble-mas de hosting de aplicaciones) y DavidChapell (Biztalk 2004 y arquitectura)atrajeron un buen grupo de asistentes, taninteresados en sus opiniones como en elcarisma personal que cada uno de estosponentes derrocha en sus actuaciones. Aligual que, Rafal Luckawiecki (el lectorencontrará una entrevista con él en éstemismo número de dotNetManía), queestos dos años ha destacado por méritospropios. Rafal anticipó las últimas nove-dades en uno de los marcos de trabajopropugnados por Microsoft: MSF, y tam-bién habló de IPv6 y Criptografía. Elespañol Fernando Guerrero, uno de losgrandes especialistas mundiales en SQL-Server, habló de características ocultas deT-SQL. Otra de las propuestas interesantes, yainiciada el año pasado, son las reunionesde expertos (forums). Esta vez, acudimosa una sobre Building .NET DevelopmentMyths en la que, moderados por el pro-pio David Chapell, Rafal Luckawiecki,Michele Leroux Bustamante, JuwalLowy y Clemens Vasters, disertaronentre sí, y más tarde con el público sobrediversos aspectos de la construcción deaplicaciones.Pero esta no era la única forma de con-tactar con los “gurús”. También pudimosasistir a encuentros específicos en salascerradas con algunos de los constructo-res de productos, como por ejemplo, dosrepresentantes del equipo de desarrollode Visual Basic .NET. En estos encuen-tros (libres) diferentes desarrolladoreseuropeos les podíamos preguntar sobreel estado del arte de cada herramienta ymuchas de las novedades que los usua-rios solicitan (en el caso de Visual Basiceran numerosas las preguntas sobre elfuncionamiento de la característica“corregir y seguir ejecutando”, que tuvie-ron que parar momentáneamente eldesarrollo de la reunión para hacer unademo específica, que —todo hay quedecirlo— resultó bastante convincente.

Ask-The-ExpertsOtra interesante iniciativa, es la posibili-dad de formular preguntas directas a dis-tintos MVP’s de todo el mundo agrupa-

dos en diferentes stands, bajo el epígrafe“Pregunte a los Expertos”. Por parte espa-ñola, participaba nuestro buen amigo ymejor técnico Eladio Rincón, y quizá seechó de menos que el público en generaltuviera suficiente información sobre loque esta posibilidad deparaba.

EntrevistasQueremos hacer mención especial dedos auténticos “monstruos” de la evan-gelización y la innovación en estas pla-taformas. Con ambos tuvimos la opor-tunidad de charlar y el lector podrá verlas entrevistas en próximos números de

la revista: Jim Gray y Dino Esposito.Jim Gray es un hombre de la Universidad.Es premio AMT Turing (el equivalentedel Nobel en Informática) y —como casitodos los grandes— auténticamente sen-cillo, inteligente y natural. Trabaja engrandes proyectos de bases de datoscomo TerraServer (http://terraService.Net y http://skyserver.sdss.org.) Esteúltimo esta intentando aglutinar toda lainformación existente en el mundo sobreastronomía y nos comentaba en la entre-vista su visión de la necesidad de poten-ciar Internet 2, la nueva generación dedispositivos de almacenamiento inteli-gentes y las necesidades de encontrar

mecanismos más inteligentes de bús-queda de información.Dino Esposito es (junto a FrancescoBalena) el máximo representante de laque podríamos llamar “Escuela Italiana”de .NET. Ampliamente conocido por susobras de divulgación y su sección fija enMSDN Magazine (Cutting Edge), hablósobre las novedades de ADO.NET 2.0,y de cuestiones de arquitectura y seguri-dad en ASP.NET. Ante la ausencia de

Scout Guthrie, con quien pensábamoscharlar, Dino nos explicó muchas de lascosas que pensábamos preguntar a Scott,y se prestó para continuar su relación connosotros en la forma en que su escasotiempo le permita.

...y la despedida:Tech-Ed PartyAquí es donde parece que algún porcenta-je de asistentes se quejó, porque manifes-

taban que la Eurocopa no les importabademasiado. Aún así se habilitaron salas desesiones para proyección de películas yhubo comida y bebida para todos. En suma,un Tech•Ed muy intenso en actividades yposibilidades, en un marco excelente, y quepromete un más que sugerente Tech•Ed2005, con los nuevos productos a punto deaparecer en el mercado.

dotN

etM

anía

<<

51

dnm.directo.eventos<<

Jim Gray, Distinguished Engineer de Microsoft

Marino Posadas y Dino Esposito

Page 52: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

52

Cambios de enfoqueHace algunos años, estos aspectos se reducían a

una misma área, la técnica. De esta forma, si conce-bimos la multiplicidad de los significados del con-cepto de arquitectura en términos de puntos de vis-ta, de acuerdo al esquema que vemos en la figura 1podríamos establecer una equivalencia del tipo:

punto de vista 1 = Separación del sistema en estructuras o componentes

Lo que implica una serie de preguntas del tipo:¿porqué están separados?, ¿se ejecutan en procesa-dores distintos?, etc. De la misma manera tendría-mos que si asimilamos punto de vista 2 = ¿cuál es el sig-

nificado de los enlaces entre los componentes?, derivaría-mos en preguntas tales como ¿implican comunica-ción, control entre ellos, envío de datos?, etc. Puntode vista 3 = ¿cuál es el significado del esquema? nos llevaa ¿porqué uno de los componentes está en un niveldiferente?, ¿eso significa que ese componente llamaa los otros?, etc. y, finalmente, punto de vista 4 = ¿cómofunciona la arquitectura al ejecutarse? Conduce a ¿cómofluyen los datos y el control a través del sistema?

Estas son las preguntas que deberíamos responderal pretender describir una arquitectura desde una pers-pectiva estrictamente técnica, y es evidente que el núme-ro de puntos de vista es variable en función de la pers-pectiva elegida. También remitimos al lector al libro deLen Bass, Paul Clements y Rick Kazman (SoftwareArchitecture in Practice, 1998), ya que –aunque algunosautores consideran que los ejemplos que utiliza sondemasiado simples o irrelevantes, reconocen sin embar-go que la clasificación que ofrece para entender losdiversos aspectos de una arquitectura es excelente.

Se añaden nuevos aspectos A partir de un momento se añaden otros aspec-

tos a los técnicos. En 1995, Philippe Kruchten, deRational, publicó en la revista IEEE Software un artí-culo bastante conocido (Las 4+1 Vistas del Modelo deArquitectura) donde comentaba los problemas aso-ciados a querer abarcar con un único diagrama la esen-cia de una arquitectura, y añade que cuando nos fija-mos en detalle en algún diagrama de ese tipo, resul-ta evidente que el autor está luchando por incluirmucho más de lo que resultaría razonable.

Su modelo de vistas de la arquitectura tenía elsiguiente aspecto:

Arquitecturas: algunos fundamentos

Por Manuel ImazConsultor [email protected]

<<

El concepto de arquitectura, en el ámbito de desarrollo de software, ha idoevolucionando y se ha convertido en un concepto bastante complejo, es decirque abarca una gran diversidad de aspectos del desarrollo.

Figura 1 Distintos puntos de vista de una arquitectura

Page 53: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

Lo que nos resulta llamativo es la forma de refe-rirse a las vistas, diciendo 4 + 1 en vez de 5. El dia-grama muestra que la quinta vista, la de los casos deuso, aparece con una representación diferente paraindicar que tiene un rol especial en la arquitectura.Contiene algunos escenarios, o casos de uso, para ayu-dar a descubrir y diseñar la arquitectura en las fasesiniciales del proceso al cual adhiere el autor, llamadoRUP o Proceso Unificado de Rational. Al representarladiferente —una elipse en vez del rectángulo— nosindica que estos escenarios no eran recogidos previa-mente en ninguna vista arquitectónica, de ahí la hete-rogeneidad con la que aparece en la figura. Las 4 vis-tas restantes capturan los aspectos que comentábamosal comienzo del artículo: la vista lógica contiene ele-mentos tales como paquetes de diseño, subsistemas oclases; la vista de implementación abarca productostales como el código fuente, los ficheros de datos, com-ponentes y ejecutables; la vista de proceso incluye ele-mentos tales como tareas, hilos de ejecución o proce-sos y, finalmente, la vista de despliegue muestra cómolos diversos ejecutables y otros componentes de tiem-po de ejecución se corresponden con los nodos de pro-ceso en las plataformas subyacentes.

La propuesta de RUP amplía el esquema para abar-car todos los elementos significativos de la arquitec-tura. Y la pregunta inmediata es, ¿cuáles son esos ele-mentos significativos?. A lo que Philippe Kruchten (enThe Rational Unified Process: An Introduction, 1999) res-ponde:

• Las clases principales, es decir aquellas quemodelan las entidades principales del dominioconsiderado.

• Los mecanismos arquitectónicos que incorpo-ran comportamiento a esas clases, tales comolos de persistencia y comunicación.

• Los patrones y los marcos (patterns and frameworks).• Las capas y subsistemas.• Interfaces.• Los procesos principales, o hilos de control.

Y es aquí, en esta enumeración, que vemos inclui-dos los elementos que darán lugar a una definiciónmás general de la arquitectura: los patrones. Cuandonos hablan de mecanismos —definidos como una cla-

se, o grupo de clases o un patrón que provee una solu-ción común a un problema dado— también se men-cionan a los patrones como esquemas que presentanuna solución a un problema de diseño recurrente yque se presenta en situaciones específicas del diseño.

Patrones arquitectónicosLa diferencia principal entre mecanismo y patrón

es que estos últimos son esquemas más generales quelos mecanismos, es decir que describen interaccionesamplias de elementos abstractos de diseño que per-miten al arquitecto o diseñador pensar en un proble-ma complejo mediante una abreviatura intuitiva. Sonlos patrones los que permitirán hablar posteriormen-te de la arquitectura en términos de abarcar tambiénlas decisiones más importantes en relación con el siste-ma a desarrollar. Y a primera vista resulta chocantever colocados en un mismo conjunto a componentes,subsistemas, ejecutables y procesadores con decisiones.

Se empieza a decir, entonces, que la caja de herra-mientas para resolver problemas arquitectónicos estáprogresivamente más llena de patrones y mecanismos.Para ir llenando la caja de herramientas aparecen libros

como los de Frank Buschmann y otros (Pattern-Oriented Software Architecture: A System of Patterns,1996) que con el tiempo quedó como primer volumende una saga que añadió el de Douglas Schmidt y otrosen el 2000, con el mismo título y subtitulado Patternsfor Concurrent and Networked Objects.

La extensa lista de patrones arquitectónicos abar-ca —por ejemplo— el clásico patrón arquitectónicode Capas, que ayuda a estructurar una aplicación, des-componiéndola en grupos de subtareas en los que cadagrupo es un nivel particular de abstracción. El com-ponente externo al patrón —llamado cliente— usa lacapa más alta, es decir de mayor nivel de abstracción,y es ésta la que se ocupa de llamar a la siguiente, quea su vez puede requerir llamar a otra y así sucesiva-mente a lo largo de todas las capas.

dotN

etM

anía

<<

53

dnm.arquitectura<<

Figura 2. Las 4 + 1 vistas de la arquitectura

La diferencia principal entre mecanismo y patrón es que estos últimos son esquemas másgenerales que los mecanismos, es decir que describen interacciones amplias de elementosabstractos de diseño que permiten al arquitectoo diseñador pensar en un problema complejomediante una abreviatura intuitiva

Page 54: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

54

dnm.arquitectura<<

Otro clásico patrón arquitectónicoes el de Modelo-Vista-Controlador. Estasolución, que fué originariamente adop-tada en Smalltalk 80, es otro buen ejem-plo de patrón arquitectónico, ya quepropone dividir una aplicación interac-tiva en tres componentes. El Modelo con-tiene la funcionalidad principal y losdatos. Las Vistas muestra la informaciónal usuario, y los Controladores se ocupande la entrada del usuario. La interfaz deusuario se compone de las vistas y con-troladores. Hay además un mecanismopara asegurar la consistencia entre lainterfaz de usuario y el modelo. Comopuede verse, los patrones arquitectóni-cos ofrecen un conjunto de subsistemaspredefinidos, en los que se especifica sus

responsabilidades y se incluyen reglas yorientaciones para organizar las rela-ciones entre ellos. Los patrones sonsoluciones para elaborar piezas de laarquitectura que permiten ir armandoprogresivamente el rompecabezas.

La arquitectura ejecutableDurante algún tiempo, la gente de

Rational insistía en el hecho de que laArquitectura era algo más que un pla-no (es decir, algo más que el conjuntode las 4 + 1 vistas que proponen paramodelar el sistema). Para efectuar estaafirmación, añadían que era necesariovalidar la arquitectura para evaluar sucalidad en términos de viabilidad, ren-dimiento, flexibilidad y robustez y, porlo tanto había que construirla. Entoncesconcluían que había que modelarla,construirla, validarla y luego tomarlacomo base del desarrollo. Es decir queese prototipo arquitectónico debía

implementar las decisiones más impor-tantes de diseño a efectos de poder vali-darlas. Y el concepto de Arquitecturaabarcaba tanto el plano como el proto-tipo, con lo cual empezaba a resultar untanto confuso, ya que no se trataba sola-mente del modelo sino también de laimplementación y el concepto empeza-ba a desdibujarse.

En las últimas versiones de su pro-ducto RUP, añaden un concepto adi-cional que clarifica la cosa. Ahora hablande Arquitectura Ejecutable, que es segúnsu glosario “una implementación par-cial del sistema, construido para demos-trar algunas funciones y propiedadesseleccionadas del sistema, en particularaquellas que satisfacen requisitos no fun-

cionales. Se construye durante la fase deelaboración1 para mitigar los riesgosrelacionados con el rendimiento, fun-cionamiento, capacidad, fiabilidad yotros aspectos, de tal manera que lacapacidad funcional completa del siste-ma puede llevarse a la fase de construc-ción sobre una base sólida, sin temor dedesajustes”.

Los estándaresUna definición formal, incorporada

en el estándar de ANSI/IEEE 1471-2000 nos dice que la arquitectura es “laorganización fundamental de un siste-ma, incorporado en sus componentes,las relaciones entre ellos y con el entor-no y los principios que rigen su diseñoy evolución”, con lo cual se añaden —ala estructura— también los principios.Retoma esta definición The Open Group,una organización que define un marcoarquitectónico, disponible gratuita-

mente para cualquier empresa que quie-ra utilizarlo para uso interno. Este mar-co (TOGAF: http://www.open-group.org/architecture/) abarca lo quedenominan la Arquitectura de laEmpresa y que incluye:

Una arquitectura de negocio (o de pro-cesos de negocio): Define la estrategia denegocio, su forma de dirección, la orga-nización y los procesos clave de nego-cio.

Una arquitectura de aplicaciones: Estaclase de arquitectura suministra un pla-no de los sistemas de aplicación indivi-duales que serán desplegados, sus inte-racciones y sus relaciones con los pro-cesos de negocio principales de la orga-nización.

Una arquitectura de datos: Describela estructura de los bienes lógicos y físi-cos de los datos de la organización y delos recursos de gestión de datos.

Una arquitectura tecnológica: Describela infraestructura de software dirigida asoportar el despliegue de las principalesaplicaciones críticas de la organización.Este tipo de software se denomina a veces‘middleware’.

La arquitectura de aplicaciones y lade datos conforman lo que se llama laArquitectura de Sistemas de Información,y coincide con lo que hemos estado defi-niendo hasta ahora como arquitectura.

El Grupo de Trabajo en Arquitec-turas de IEEE (IEP 1471) da una pro-yección bastante general al concepto,ya que una arquitectura es el conceptode más alto nivel de un sistema y suentorno. También abarca el encaje conla integridad del sistema, con las res-tricciones económicas, con las preocu-paciones estéticas y con el estilo. Es

Una definición formal, incorporada en el estándar de ANSI/IEEE 1471-2000 nos dice que la arquitectura es “la organización fundamental de un sistema, incorporado

en sus componentes, las relaciones entre ellos y con el entorno y los principios que rigen su diseño y evolución”

1 La de elaboración en una de las 4 fases en que RUP divide el desarrollo: Inicio, Elaboración, Construcción y Transición.

Page 55: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

55

dnm.arquitectura<<

decir que —al revés que en sus comien-zos— el enfoque deja de ser ‘hacia aden-tro’ y comienza a tener en cuenta al sis-tema como un todo, con el entorno deusuario y de desarrollo, es decir unenfoque ‘hacia afuera’.

Más allá de la arquitecturaEsta expansión hacia afuera continúa

progresando, y en algunos de los últimostrabajos (Luke Hohmann, BeyondSoftware Architecture: Creating andSustaining Winning Solutions, 2003) sereconoce que, a diferencia de las defini-ciones previas, que se centran en losaspectos técnicos de la arquitectura, sedebe poner el acento en los aspectoshumanos y de negocio, que también for-man parte de la gran imagen arquitectó-nica. De esta manera, podríamos asociaren la figura 1 el punto de vista 1 = enfoquetécnico, punto de vista 2 = enfoque humanoy punto de vista 3 = enfoque de negocio o de

marketing para tener una visión muchomás amplia de la arquitectura.

Es cierto, tal como afirma el autor,que aunque pongamos el énfasis en lacreación inicial y las primeras versionesde la arquitectura, invertiremos la mayorparte del tiempo en trabajar —reelabo-rar— la arquitectura existente. La evo-lución de la arquitectura puede resultarmucho más fascinante e interesante quela creación de su versión final. Es sóloa través de la evolución que podemosconstatar dónde hemos tenido éxito ono, sobre todo cuando la evolución sebasa en la realimentación directa porparte de los clientes.

La actual tendencia —tanto de mar-keting como en el caso de las metodo-logías ágiles, en especial FDD— es ahablar de características (features) de unproducto software, como algo que elproducto hace o debería hacer (es decir,las antiguas funcionalidades). Pero estanueva denominación no es simplemen-

te un cambio de palabra —que puedegustar mucho a los informáticos— sinoque hace que se pueda hablar de un pro-ducto desde el punto de vista de losusuarios o de marketing —externo— yno de aspectos internos que entiendeprincipalmente el desarrollador, comoes el caso de las funcionalidades.

Por eso ahora puede hablarse de lacapacidad de una arquitectura para refe-rirse a la habilidad de la misma parasoportar un conjunto determinado decaracterísticas. La capacidad de unaarquitectura resulta evidente cuando ledecimos a marketing que una colecciónrelacionada de características —o unconjunto de ellas que no parecen rela-cionadas a primera vista, pero que lue-go sí lo están por detalles de implemen-tación— es difícil o imposible de imple-mentar dentro de nuestra actual arqui-tectura. Esto implica una interaccióncontinua entre la madurez y evoluciónde las arquitecturas.

bibliografía

Software Architecture in Practice,

Second EditionLen Bass, Paul Clements, Rick

Kazman

Ed.: Addison WesleyPáginas: 560

ISBN: 032115495-9Publicado: Abril, 2003

(primera edición de 1998)

The Rational UnifiedProcess:

An Introduction (2nd Edition)

Philippe Kruchten

Ed.: Addison WesleyPáginas: 320

ISBN: 0201707101Publicado: Marzo, 2000

(primera edición de 1990)

Pattern-OrientedSoftware Architecture,

Volume 1:A System of Patterns

Frank Buschmann, RegineMeunier,Hans Rohnert, Peter

Sommerlad,Michael Stal,Peter Sommerlad,

Michael Stal

Ed.: John Wiley & SonsPáginas: 476

ISBN: 0471958697Publicado: Agosto, 1996

Pattern-OrientedSoftware Architecture,Volume 2,Patterns for

Concurrent andNetworked Objects

Douglas Schmidt,MichaelStal,Hans Rohnert, Frank

Buschmann

Ed.: John Wiley & SonsPáginas: 666

ISBN: 0471606952Publicado:

Septiembre, 2000

Beyond SoftwareArchitecture:Creating

and SustainingWinning Solutions

Luke HohmannEd.: Addison-Wesley

Páginas: 352ISBN: 0201775948

Publicado: Enero, 2003

Page 56: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

56

<<

Code Generation in Microsoft .NETKathleen Dollard

Editorial: APressNúm. Pag. : 730Portada: RústicaAño: 2004

Una interesante obra, tanto por el tratamiento como por el contenido. Tras el impactoinicial de una tecnología tan amplia como .NET, empiezan a aparecer libros “específicos”tendentes a aportar soluciones concretas más que a hacer aproximaciones generales.

Dollard aborda la generación de código en todos los contextos en los que ésta tiene sen-tido (no se limita a examinar el namespace Reflection.Emit, o CodeDOM). De esa for-ma, analiza la extracción de metadatos y la emisión de código, pero en la segunda parte,plantea “casos de uso”, donde la generación de código es especialmente atractiva:Generación de procedimientos almacenados, Plantillas de Capa Intermedia, AplicacionesWindows Forms, Interfaces de usuario Web, etc. Para concluir, encontramos un amplioapéndice (XSurvival) dedicado a la generación de código XML y sus variantes (XSD, XSL,XSL/T, XPath, etc.), con sugerentes ejemplos que incluso podrían ser extendidos a lageneración del novísimo XAML utilizado por Microsoft en Longhorn. En suma una obraespecialmente atractiva para aquellos interesados en crear su propio “marco de solucio-nes” con todas las capacidades que .NET aporta para ello.

Beginning .NET Game Programming in C#Dave Weller,Alexandre Santos y Ellen Hatton

Editorial: APressNúm. Pag. : 413Portada: RústicaAño: 2004

Weller es un veterano de la simulación (trabajos previos en simuladores F-16 y la Utilidadde Entrenamiento de la Estación Espacial) y actualmente ocupa el cargo de .NETTechnical Evangelist en Microsoft (Division .NET Gaming). Junto a Santos y Hatton,presentan una “rareza”, dado que unos de los pocos manuales especializados en progra-mación de juegos para este entorno que pueden encontrarse.

La obra ha pasado todas las revisiones internas de Microsoft respecto al estilo de progra-mación, y utiliza una aproximación teórica totalmente práctica: explica lo necesario ponien-do ejemplos de juegos reales (un clon de Tetris, llamado Nettrix, otro clon de Snake, elNetterpillars, etc). La revisión recorre desde la programación con GDI+ hasta la másrecomendable utilización de DirectX y una comparativa de rendimientos y solucionesparalelas. Incluso podemos encontrar al final un “capítulo de regalo”, sobre cómo portarNettrix a un Pocket PC. En suma, un excelente punto de partida para los que quieranadentrarse en este mundo que nada tiene que ver con la programación de gestión.

dnm.biblioteca.net<<

dnm.biblioteca.net

Page 57: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

57

Nueva línea de productos MicrosoftExpress:Herramientas para desarrollodiseñadas para los no profesionales

Microsoft ha anunciado el lanzamiento de los productos VisualStudio Express, unas herramientas de fácil aprendizaje para desa-rrollo de software diseñadas para aficionados y estudiantes, ademásde la presentación del SQL Server Express Edition, un motor parabase de datos que sustituye al Microsoft SQL Server Desktop Engine(MSDE). La línea de productos Microsoft Express proporciona unacceso fácil y de bajo coste a la plataforma de desarrollo Microsoftpara desarrolladores no profesionales de software que deseen apren-der a crear aplicaciones basadas en la Web y en el sistema operati-vo Windows.

Nueva línea de productos MicrosoftExpress:Herramientas para desarrollodiseñadas para los no profesionales

Microsoft ha anunciado el lanzamiento de los productos Visual StudioExpress, unas herramientas de fácil aprendizaje para desarrollo desoftware diseñadas para aficionados y estudiantes, además de la pre-sentación del SQL Server Express Edition, un motor para base dedatos que sustituye al Microsoft SQL Server Desktop Engine(MSDE). La línea de productos Microsoft Express proporciona unacceso fácil y de bajo coste a la plataforma de desarrollo Microsoftpara desarrolladores no profesionales de software que deseen apren-der a crear aplicaciones basadas en la Web y en el sistema operativoWindows.

Lanzamiento de la versión Beta 1 de Visual Studio 2005

Microsoft anunció el 29 de junio la aparición de la versión Beta 1de Visual Studio 2005 en modo de prueba y evaluación. En esta ver-sión beta se incluyen funciones avanzadas para ayudar a los desa-rrolladores a crear sitios web con mayor rapidez y facilidad.También incluye Visual Studio Team Architect Edition, un com-ponente del Visual Studio Team System, la ampliación de la líneade productos Visual Studio anunciada el mes pasado en el Tech·Edde San Diego. La versión beta se va poder descargar en breve a tra-vés de http://msdn.microsoft.com/vs2005/

Red Codezone, red de conocimiento“localizada”

Para fomentar el apoyo que Microsoft ofrece a la comunidad de desa-rrolladores en Europa, la compañía ha anunciado hoy la formaciónde la Red Codezone, un conjunto de sitios web que ofrecen conoci-mientos técnicos a grupos de usuarios y desarrolladores en los dife-rentes países, y que permiten a los visitantes la búsqueda de códigoy recursos técnicos existentes en sus idiomas locales. Hasta la fecha,es posible encontrar sitios Codezone en Austria, Suiza, Alemania yel Reino Unido, aunque ya hay planes para su lanzamiento en otrospaíses europeos durante este mismo año.

MSDN Product Feedback Center

También se ha presentado el MSDN Product Feedback Center, unabase de datos pública sobre incidencias y sugerencias en relación conla versión beta de Visual Studio 2005, en donde los desarrolladorespueden realizar el seguimiento online de sus comentarios sobre elproducto, además de obtener notificación de parches a través delcorreo electrónico y ponerse en contacto con los miembros de losequipos de producto Microsoft durante su fase desarrollo.

Además, estos sitios ofrecen información a los desarrolladorespara que eviten problemas ya conocidos, mejorando con ello su pro-ductividad, compartiendo conocimientos prácticos y evaluando lasreacciones existentes, además de contribuir con nuevos informes. ElMSDN Product Feedback Center (http://msdn.microsoft.com/feed-back/) se puede también integrar con el nuevo portal personalizableVisual Studio 2005 Developer Center, al que se puede acceder enhttp://msdn.microsoft.com/vs2005/

Shareware y Seguridad

Como reconocimiento a las aplicaciones shareware, este año Tech·Edpresenta un pabellón Shareware, que destaca las contribuciones de peque-ñas compañías de software y de programadores individuales. El pabellónmuestra la variedad de aplicaciones disponibles en forma de shareware.

Entre las soluciones que se presentan en la muestra se encuentranherramientas para la protección y monitorización de archivos, creaciónde bases de datos basadas en imágenes, gestión de derechos digitales,organización de la información y desarrollo de software. Después delevento, se distribuirá a todos los delegados en la conferencia un DVDde shareware desarrollado con la plataforma Microsoft .NET.

Especial Tech•Ed Europe 2004dnm.noticias<<

Durante el comienzo de la reunión anual Tech•Ed Europe, Microsoft Corp. dio a conocer unaamplia gama de nuevos productos e iniciativas para desarrolladores y aficionados al software, asícomo para partners del sector y profesionales de las TI. 146 expositores, patrocinadores y part-ners han partipado en este evento que ha contado con una asistencia de más de 6.500 personas.

Windows CE 5.0 ofrecerá una ampliación de licencias fuenteMicrosoft anunció que la versión 5.0 de Windows CE va a ofrecer una ampliación de las licencias fuente, permitiendo por vez primera la distri-bución comercial de soluciones derivadas del código fuente compartido de la versión 5.0 de Windows CE a todos los titulares de licencias. Ademásde esto, la versión 5.0 del Windows CE 5.0 incluye unas mejoras en el rendimiento de las capacidades para networking que van a aumentar engran medida la velocidad en el procesamiento de los datos, además de la incorporación de más de 60 controladores para mejorar la calidad de laproducción y tecnología Direct3D® Mobile para hacer posible el empleo de aplicaciones con una gran cantidad de gráficos.

Page 58: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

dotN

etM

anía

<<

58

Microsoft propone algunos vistazos lo que será la tecnología del futuro

Podemos leer en Silicon.com, que –como parte de una mues-tra itinerante iniciada hace ya dos meses en Redmond, algunosde los ingenieros pertenecientes a Microsoft Research, estánmostrando algunas de las nuevas posibilidades ligadas al sistemaoperativo y a la Web, respectivamente. Por un lado, la batalla porla seguridad y por otro, el acceso a la Web en competición conGoogle ofreciendo ventajosas alternativas, como por ejemplo lainclusión de agentes (que previamente instruidos por nosotros),busquen en la Web la información que nos interesa, ignorandoel resto. Respecto a la seguridad, una de las tecnologías en inves-tigación, es una especie de escudo, de forma que cuando se des-cubra una vulnerabilidad pueda “taparse esa zona, como con unesparadrapo, hasta que el parche esté disponible” (http://mana-gement.silicon.com/itpro/0,39024675,39121221,00.htm).

Además, en el pasado PDC, Rick Rashid, VicePresidenteSenior de Microsoft Research, estuvo anticipando algunas delas caracterísiticas de SkyQuery, un nuevo servicio que agluti-naría toda la información astronómica mundial en una únicabase de datos distribuida. La iniciativa se ha llevado a cabo con-juntamente con la prestigiosa John Hopkins University, enBaltimore. Jim Gray fue el encargado de las demos, mostran-do enlaces a la Sloan Digital Sky Server, una base de datoscon 10 TeraBytes de información gráfica y 1 Tb de informa-ción textual, que almacenaban 3.000 millones de registros enuna base de datos SQL-Server.

Un nuevo tipo de memoria RAM promete gran almacenamiento a bajo coste

Investigadores de la Argonne National Laboratory enIllinois, dirigidos por Brian Stephenson, han anunciado laconstrucción de dispositivos de memoria de 1cm de lado, deno-minados memoria “Fe-RAM”, en referencia al fenómeno físi-co que les sirve de fundamento, la Ferro-electricidad. Aunquese habían conseguido almacenamientos de 256 KB previamente,se pensaba que no era posible construir “películas de memo-ria” con un grosor inferior a los 4 nanómetros. El equipo deStephenson demuestra que no existe tal límite, pudiendo lle-garse a más de 25Mb fácilmente. Además sería una memoria“no deleble”, pero más rápida que las memorias flash actuales.

Nuevos estilos visuales para Windows XP

La GUI Olympics (olim-piada de estilos visuales) haemitido su fallo y los esti-los ganadores pueden ador-nar y personalizar la formaen que vemos nuestroWindows XP. El programaque lo permite, llamadoWindowBlinds admite“skins” o pieles de confi-guración de muy diversos

formatos y aspectos visuales. Algunos de los ganadores puedendescargarse de la página http://www.guiolympics.com/ y el pro-grama WindowBlinds de http://www.stardock.com/pro-ducts/windowblinds/. El aspecto, puede ser original, tal y comovemos en las imágenes adjuntas.

WindowBlinds debe de ser instalado y configurado pre-viamente, y es de uso gratuito.

Visual Basic en el Cine

Una nueva y divertida ini-ciativa de enseñanza del popu-lar lenguaje, utiliza la cinema-tografía como metáfora deaprendizaje.

Tal y como vemos en lapágina adjunta, Microsoft hapuesto en marcha una iniciati-va para la popularización dellenguaje Visual Basic, a travésde “streaming video”, creandoapartados que recuerdan loscarteles de las películas clásicasde Hollywood. Algunos deestos apartados populares, lle-

van por titulo: Data & XML, Deployment, Controls, How-to, Development Environment, etc. El sitio principal es acce-sible en http://msdn.microsoft.com/vbasic/atthemovies/n

oti

cia

s.n

oti

cia

s.n

oti

cia

s.n

oti

cia

s.n

oti

cia

sdnm.desvan<<

Marino Posadas

¿Cuál sería la primera cosa de Indigo que mostraríamos aun desarrollador de Visual Basic?

Curioso documento de vídeo, en el que Richard Turner,del equipo de desarrollo de Indigo, sugiere formas de explicarel nuevo subsistema de comunicaciones para Longhorn a losdesarrolladores de VB. Accesible en http://channel9.msdn.com/ShowPost.aspx?PostID=9929#9929

Hacia la accesibilidad en la lectura de documentos complejosDocumento oficial de laW3C sobre cómo haceraccesibles los documentos

complejos para usuarios con dificultades de lectura: “MakingVisualizations of Complex Information Accessible for Peoplewith Disabilities”, en http://www.w3.org/WAI/RD/2004/06/cfp-viz.html

Writing Managed Stored Procedures in SQL Server 2005(Yukon)

Interesante artículo sobre codificación deprocedimientos almacenados en Yukon, porThiru Thangarathinam. Incluyen la codifica-ción de características de seguridad. Puede leer-se en http://www.devx.com/dotnet/Article/21286?trk=DXRSS_LATEST

documentos en la red

Page 59: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom

IMPORTES VÁLIDOS HASTA NUEVA OFERTA

DATOS DE FACTURACIÓN

CIF/NIF . . . . . . . . . . . . . . . . . . . . .Empresa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Nombre y apellidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Dirección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Población . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Código Postal . . . . . . . . . . . . . . . . . . . Provincia . . . . . . . . . . . . . . . . . . . . . . . . .Teléfono . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fax . . . . . . . . . . . . . . . . . . . . . . . . . . . email . . . . . . . . . . . . . . . . . . . . . . . . . . . .

DATOS DE ENVÍO (sólo si son distintos de los datos de facturación)

CIF/NIF . . . . . . . . . . . . . . . . . . . . .Empresa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Nombre y apellidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Direcció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 CaixaNú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 (imprescindible)

a de de 20

Suscripción a dotNetManía

Usted autoriza a la mecaniza-ción de estos datos. El res-ponsable y destinatario deéstos es Netalia, S.L. Ustedtiene derecho a acceder a susdatos, modificarlos y cance-larlos cuando lo desee. Susdatos no serán cedidos en nin-guna de las formas posibles aterceras partes y no se utiliza-rán más que para el buen fun-cionamiento de su suscripcióna la revista dotNetMania ypara informarle de las activi-dades comerciales que realicela editorial Netalia, S.L. Si nodesea recibir informacióncomercial de esta empresamarque la casilla siguiente ❑

❑ Nº1 ❑ Nº2 ❑ Nº3 ❑ Nº4 ❑ Nº5

Envíe este formulario por email a la dirección [email protected], o al fax (34) 91 499 13 64También puede enviarlo por correo postal a la siguiente dirección:

C/ Robledal, 13528529- Rivas VaciamadridMadrid (España)

❑ Deseo suscribirme a dotNetManía por un año (11 ejemplares) y beneficiarme de la oferta del 10% de descuento por unimporte total de 60 6 para España; o por 75 6 para el resto de Europa; o por 90 6 para el resto del mundo (IVA incluido).

❑ Deseo suscribirme a dotNetManía por un año (11 números) por un importe de 45 6 por ser estudiante (IVA incluido).Aporto fotocopia del carné de estudiante o sello del centro académico (IMPRESCINDIBLE). OFERTA VÁLIDA SÓLOPARA ESTUDIANTES RESIDENTES EN ESPAÑA.

Page 60: Visual Basic.NET • C# • Delphi • ASP.NET • ADO.NET • .NET ... · nible ninguna base de datos como SQL ... • 3º _travel Agencia de Viajes ... • 1º Proyecto Freedom