dnm001 PDF
dnm001 PDF
dotNetManía
www.dotnetmania.com
nº1 febrero 2004
Dedicada a los profesionales de la plataforma .NET
Microsoft prepara el
futuro
La evolución de la plataforma .NET
Longhorn y el Desarrollo
¿Programación en .Net en Yukon?
De Everett a Orcas, pasando por Whidbey
Intercambiando contenidos
en RSS con ASP.NET
Equivalencia de instrucciones
de C# y VB.NET (I)
Orientación a objetos.
Modelos en UML
¡Hola mundo!
<< Como cuando empezamos con un nuevo entor-
no y hacemos nuestro primer programa, hoy
raciones, unidos por la mismas manías. Con
una plataforma como .NET no podíamos resis-
publicamos el primer número de esta revista, tirnos a seguir con la labor que iniciamos los
y nos sentimos igual de impacientes que cuan- más viejos hace ya trece años. También están
do esperamos que la compilación finalice satis- los más jóvenes que sienten cuando van des-
factoriamente y aparezca esta frase tan usada cubriendo las interioridades de la plataforma
en los comienzos: ¡Hola Mundo! .NET, lo que nosotros sentíamos cuando des-
Pero no somos novatos. Muchos de nosotros cubríamos las indocumentadas de Clipper o de
ya hicimos clippeRmanía, y después FOXmanía, DOS o de Novell.
y después Algoritmo. Ahora, siguiendo erre que Cualquier tiempo pasado no fue mejor.
erre con nuestras manías, nos ha dado por edi- Nuestras revistas anteriores fueron, modestia
tar una revista especializada en la plataforma aparte, muy buenas. Pero con dotNetMania
.NET a la que hemos dado el nombre de creo que daremos lo mejor de nosotros mis-
dotNetManía. La primera revista en el mundo mos, porque contamos con una plataforma con
dedicada exclusivamente a los profesionales de una arquitectura tan amplia como impecable,
la plataforma .NET, escrita en castellano. porque tenemos más medios, más experiencia,
Ha llovido mucho desde nuestra primera porque somos más. Sólo faltabas tú, y por lo
revista, y sin embargo, nuestro espíritu sigue visto ya estás aquí.
siendo el mismo. Tenemos ganas de contar lo Esperamos sinceramente que nuestro tra-
que sabemos, de compartir lo que aprendemos, bajo te sea útil, que disfrutes leyéndola y
nuestros pequeños descubrimientos y nuestras aprendiendo con ella, tanto como nosotros
experiencias. haciéndola, y sobre todo, esperamos ser capa-
Aquí seguimos, los viejos “clipperos” (algu- ces de contagiarte el maravilloso virus de la
nos quedaron en el camino) y las nuevas gene- curiosidad.
3
dnm.sumario
Intercambiando contenidos en RSS con ASP.NET 8-11
Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi-
ficación RSS. Conozca brevemente la historia de esta especificación y aprenda a
utilizarla con el ejemplo propuesto.
dnm.laboratorio 52-55
Delphi 8 para Microsoft .NET Framework
La evolución hacia la revolución .NET
Un primer vistazo al nuevo Delphi, que abandona también a Win32 y se pasa al
código gestionado de .NET Framework
dnm.biblioteca.net 56
Microsoft Visual Basic.NET. Manueal Imprescindible
De Guillermo Som
Programación con ASP.NET
De Jorge Serrano
dnm.comunidad.net 57
Proyecto Golem
dnm.desvan 58
dnm.noticias
<< dnm.noticias
<< Curso de Presentaciones Efectivas Tfnos: 91 567 50 00/ 91 567 50 51 << Seminario técnico de generación
Imprescindible para la tramitación de http://www.microsoft.com/spain/tech- de informes con Crystal Reports
la certificación MCT net/comunidad/eventos/seguridad/cis- y Crystal Enterprise
26 de febrero de 2004 co_sectour5.asp 25 Febrero de 2004
Auditorio Microsoft Sala presentaciones Danysoft
C/ Pechuán, 1. 28002, Madrid. << Solución ALM de Borland
para la plataforma .NET Estébanez calderón nº 5, 3ª planta
http://www.microsoft.com/spain/forma- Organiza Grupo Danysoft (902 123 146)
cion/noticias/presentaciones.asp 18 Febrero de 2004
<<dotNetManía
Auditorio de Microsoft
<< V Cisco Secure Tour anual C/ Pechuán, 1
Fecha: 27 de Enero de 2004 Organiza Microsoft (902 197 198 ),
Hotel Meliá Castilla Borland (902 344 556 ) y el Grupo
C/ Capitán Haya, 43 Danysoft (902 123 146)
6
28020 - Madrid calendario.de.eventos
<< dnm.noticias
como Office XP Professional con Frontpage o Windows NT 4, entre otros, sí serán ro, segundo y tercero respectiva-
actualizados con versiones sin la máquina virtual de Java para poder seguir des- mente. Este año se repartirán más
cargándose como hasta ahora. de $85.000 en premios en metáli-
Para más información consulte en el centro de soporte de Microsoft en: co para los ganadores.
http://support.microsoft.com 7
Por Jorge Serrano
Visual Basic y .NET MVP
www.PortalVB.com
<< Cuando comenzó Internet, nadie conocía el alcance real ya que es realmente en lo que se ha convertido.
que hoy día tiene. Lo más valioso de la red de Y es que RSS no es otra cosa que un docu-
redes es la información, pero ¿tenemos control mento XML que sigue una serie de reglas que
sobre la información que se publica en Internet permiten traducir los contenidos de estos docu-
y tenemos acceso a ella fácilmente?. Desgra- mentos para que sean interpretables por cual-
ciadamente, la información fluye a una veloci- quier aplicación o programa que lo trate.
dad imparable e incontrolable, pero permanece Construir un documento RSS es por lo tanto,
inaccesible en muchos de los casos, y en otros, realmente sencillo, y podemos hacerlo con cual-
requiere que realicemos diferentes saltos entre quier editor como por ejemplo el bloc de notas
un lugar y otro en Internet para conocer las noti- de Windows.
cias e informaciones que publica un sitio y otro
o sobre un tema de interés. Es decir, la infor-
mación se encuentra dispersa y sin criterio algu-
no que nos permita compartir y acceder a ella
sin trastornos para los usuarios.
RSS no es otra cosa que un documento
Para tratar de evitar en parte esta desinfor- XML que sigue una serie de reglas
mación, apareció el concepto de RSS. Ahora bien, que permiten traducir los contenidos
¿qué y cómo es?, ¿cómo acceder a este tipo de de estos documentos para que sean
recursos? y sobre todo, ¿cómo tratarlos en nues- interpretables por cualquier
tras aplicaciones ASP .NET?. Esto es justamente aplicación que lo trate.
lo que veremos en este artículo.
¿Qué es RSS?
La definición oficial de RSS es Really Simple Historia y versiones de RSS
Syndication —distribución realmente simple— La historia de RSS no está del todo clara y
también conocido como Rich Site Summary —re- cuando uno se acerca a ella, parece más aden-
sumen enriquecido del sitio—, pero quizás trarse a una batalla de disputas que a una histo-
encuentre RSS con un significado más preciso ria de armonía y entendimiento. Pero lo que está
<<dotNetManía
aunque no coincida con sus siglas, el de Content claro es, que separando las diferencias, podemos
Syndication —distribución de contenidos—, que indicar que el embrión de lo que hoy se conoce
es quizás un significado más acertado para RSS como RSS, lo encontramos en Abril de 1997 y
8
<< dnm.asp.net
aceptada y extendida.
Un documento RSS es un docu-
Compatible con la versión
mento XML, con sus etiquetas y valo- 0.91.
res de acuerdo a una serie de reglas.
Tabla 1.Versiones de RSS
9
<< dnm.asp.net
debemos trabajar en una etapa posterior. Lo lea el contenido del documento RSS y lo mues-
importante en este momento es saber cómo tra- tre en pantalla. Evidentemente, este procedi-
bajar con este tipo de documentos desde nues- miento no es el mejor de todos ni tampoco será
10
<< dnm.asp.net
11
Por Guillermo ‘Guille’ Som
Visual Basic MVP desde 1997
www.elguille.info
Equivalencia de instrucciones
de C# y VB .NET (I)
Cómo hacer las mismas cosas (o casi) en C# y Visual Basic .NET
<< Una cosa que es indiscutible, en lo que a la progra- piada del lenguaje que hayamos elegido para
mación de aplicaciones para .NET Framework desarrollar nuestras aplicaciones para poder
se refiere, es que todos los lenguajes se apoyan hacer esa tarea. Lo mismo ocurrirá si pretende-
en las clases que ese marco de trabajo incluye. mos crear nuestras propias clases; tendremos que
Ya pasó la época en la que para hacer ciertas tare- saber cómo quiere .NET Framework que haga-
as comunes, como abrir un fichero, acceder a mos las cosas, qué requisitos nos exige y una vez
una base de datos o interactuar con el sistema que sepamos esas exigencias, podremos crear
operativo subyacente cada lenguaje de progra- nuestro propio juego de clases. En ambos casos
mación tenía su propia forma de hacerlo. Por debemos conocer la sintaxis que utiliza nuestro
suerte para los programadores ahora sólo nece- lenguaje predilecto para hacernos entender con
sitamos conocer una forma de trabajar: La for- .NET Framework.
ma que las clases de .NET Framework tienen
para hacerlo.
.NET Framework incluye casi toda la fun-
cionalidad que necesitamos para crear nuestras No sólo veremos la equivalencia sintáctica
aplicaciones, y si algo que necesitamos hacer no entre C# y VB .NET, también veremos
se incluye entre los numerosos espacios de nom- algunos conceptos que son exclusivos
bres plagados de clases de .NET Framework, de cada lenguaje.
podemos recurrir a componentes creados por
terceros e incluso crearlos nosotros mismos.
Ahora, lo importante es que, independiente-
mente del lenguaje que estemos usando, siem-
pre tendremos la oportunidad de hacer las cosas Se supone que si estamos programando en
al estilo de .NET Framework: Usar una clase Visual Basic .NET, o en C#, sabremos aplicar
para lo que necesitemos. las reglas sintácticas del lenguaje para poder
Para poder usar una clase, sólo necesitamos realizar todas las tareas... o casi todas, que algu-
<<dotNetManía
saber cómo declararla e instanciarla en la memo- nas veces no sólo es suficiente conocer la sin-
ria para que esté lista para usar. No necesitamos taxis del lenguaje, ya que si no conocemos
saber nada más, salvo conocer la sintaxis apro- cómo realizar ciertas cosas, por muy bien que
13
<< dnm.lenguajes.net
sepamos hacer un bucle FOR, no nos servirá Sin más historias empecemos viendo las dis-
de mucho. tintas tareas que podemos realizar en .NET
Voy a dar por supuesto que ya sabes progra- Framework comparadas entre los lenguajes C#
mar para .NET, es decir, ya sabes cómo hacer y Visual Basic .NET, veremos desde cómo decla-
las cosas para trabajar con las clases de .NET rar una variable hasta cómo llamar desde el cons-
Framework, (aunque no conozcas todas las cla- tructor de una clase derivada al de la clase base.
ses incluidas en .NET), ya sabes cómo crear tus
propias clases, ya sabes cómo derivar una clase Sintaxis básica
a partir de otra, ya sabes cómo implementar una
interfaz, ya sabes cómo crear un bucle o definir La declaración de las variables es una de las
una propiedad e incluso un constructor o un cosas que siempre tendremos que hacer en cual-
destructor (o finalizador); sí, se supone que ya quier aplicación.
sabes hacer todas esas cosas en el lenguaje que A lo largo de este y los siguientes artículos te
has elegido para programar, (en esta serie de mostraré una serie de tablas en las que usaré cier-
artículos supondré que ha sido el lenguaje C# o tos marcadores para indicar instrucciones o tipos
Visual Basic .NET), pero lo que seguramente de datos que tendremos que especificar. Por
ejemplo:
14
<< dnm.lenguajes.net
16
<< dnm.lenguajes.net
Para declarar y asignar valores al mismo tiem- de eliminar el contenido de un array usando la
po, tanto en VB como en C#, se indicarán los instrucción Erase.
valores de cada elemento entre un par de llaves: Para acceder a un elemento de un array, en
En VB: Dim var() As Integer = {1, 4, 12, 2} VB se usará un índice numérico dentro de un par
En C#: int[] var = {1, 4, 12, 2}; de paréntesis, mientras que en C# ese índice se
indicará dentro de un par de corchetes:
En Visual Basic se puede cambiar el tamaño En VB: i = var(2)
de un array usando ReDim: En C#: i = var[2];
Dim var() As Integer
ReDim var(10) Otra diferencia entre Visual Basic .NET y C#
es que al definir un número de elementos en un
También podemos usar ReDim Preserve; en array, en C# se indicará el número de elementos
este caso, si el array ya contenía valores, dicho que tendrá el array, mientras que en VB el núme-
contenido se conserva al cambiar el tamaño: ro indicado será el valor del índice superior del
ReDim Preserve var(15) array:
En VB: Dim var(4) As Integer define un
En C# sólo se puede cambiar el tamaño de un array de 5 elementos, desde 0 hasta 4.
array usando new y no existe un equivalente para En C#: int[] var = new int[4]; define un
Preserve; si queremos conservar el contenido ante- array de 4 elementos, desde 0 hasta 3.
rior, debemos crear una copia y asignar los valo-
res de forma manual: En todos los lenguajes de .NET, el índice
int[] var; inferior de un array siempre será cero.
var = new int[11]; En el próximo número seguiremos repa-
<<dotNetManía
17
Por Mauricio Ulargui
Director de la División .Net de Microsoft Ibérica
dnm.opinion
18
<< dnm.opinion
La próxima revolución
Isaac Hernández, director de Operaciones y Marketing de Microsoft Ibérica
Pocas veces un evento dirigido a los desa- Como antesala de lo que será el lanza- jas que les ofrecerá el nuevo Windows, para
rrolladores de todo el mundo suscitó tanta miento más importante de la compañía has- crear soluciones que se sitúen a la altura
expectación e interés como lo hizo la ta la fecha, SQL Server “Yukon” y Visual de las circunstancias.
Professional Developers Conference que Studio .NET “Whidbey” harán su apari- Así pues, los meses que nos esperan
Microsoft celebró el pasado mes de octubre ción para mostrar a los desarrolladores las van a ser realmente interesantes para pre-
en Los Ángeles. Las razones tenían nom- enormes posibilidades que la plataforma parar el camino hacia estas nuevas tecno-
bres y apellidos: Windows “Longhorn”, .NET va a abrir ante sus ojos. logías que se nos avecinan y, por lo tanto,
SQL Server “Yukon” y Visual Studio .NET La nueva tecnología que se avecina va necesitarán de un gran esfuerzo, no sólo
“Whidbey”. a determinar un punto de inflexión en el desde el punto de vista del trabajo que
En un único evento los asistentes pre- trabajo de la comunidad de desarrollado- venimos desempeñando en Microsoft, sino
senciaron los cimientos sobre los que se res de todo el mundo. Por este motivo, también desde el punto de vista de otros
asentarán las bases de la tecnología de los Microsoft confía plenamente en su esfuer- actores implicados como partners, desa-
<<dotNetManía
próximos años. Sin ir más lejos, Windows zo para diseñar nuevas aplicaciones basán- rrolladores y usuarios para que todos jun-
“Longhorn” está siendo escrito desde cero, dose en estas tecnologías y va a colaborar tos convirtamos en realidad la próxima
lo que va a suponer un giro radical en la con todos ellos, tanto los que ya han apos- revolución.
mentalidad de los usuarios en cuanto a inte- tado por la plataforma .NET como por los
racción con los ordenadores se refiere. que lo harán cuando conozcan las venta-
19
Por David Carmona
Development Consultant - División de
Desarrollo y Plataforma de Microsoft Ibérica
.NET era sólo el principio, los próximos años seremos testigos del desembarco de nuevas
tecnologías que usarán el modelo de desarrollo .NET y XML para la construcción de nue-
vas aplicaciones impensables hasta ahora. Las próximas versiones de Visual Studio (Whidbey),
SQL Server (Yukon) y Windows (Longhorn) se encargarán de ello.
<< En julio del año 2000 Bill Gates año 2000 nos sirvió para conocer la sitivo (ya sea web, Windows o dis-
presentó en el Professional Developer plataforma sobre la que íbamos a positivo móvil). El objetivo próximo
Conference de Orlando (PDC) una desarrollar en el futuro. de Microsoft consiste en llevar este
vista preliminar de la nueva plata- Con estos precedentes se anun- modelo de arquitectura a otros dos
forma de desarrollo Microsoft ció una nueva conferencia PDC en elementos presentes en las aplica-
.NET. Han pasado tres años desde Los Ángeles el pasado mes de octu- ciones: el motor de almacenamien-
aquel evento y en este tiempo hemos bre. El interés superó todas nuestras to de datos y el sistema operativo.
sido testigos de cómo .NET ha pasa- expectativas, de hecho dos semanas Esto significa que .NET y XML for-
do de ser una visión de futuro a una antes del evento se colgó el cartel de marán parte de ambos, por lo que
realidad. Hoy la industria de la infor- “no hay billetes” por alcanzarse la las herramientas y el modelo de
mática no tiene dudas de la necesi- capacidad máxima del Centro de desarrollo que utilizaremos serán los
dad de abrir las aplicaciones a están- Convenciones. En esta ocasión mismos que en el resto de nuestra
dares abiertos, y que los servicios Microsoft presentó las dos siguien- aplicación.
web proporcionan la tecnología para tes oleadas de tecnologías que vivi-
conseguirlo. Por aquel entonces nos remos los próximos años, entrando Primera oleada:Yukon
resultaba complicado imaginarnos en detalle sobre el modelo de desa- y Whidbey
una aplicación sin componentes rrollo de cada una de ellas e incluso
COM, modelo de hilos o contado- repartiendo entre los asistentes un La primera oleada se centrará en
res de referencias. La integración juego de DVDs con una vista preli- el motor de almacenamiento estre-
entre aplicaciones se basaba en desa- minar de los bits definitivos. lla de Microsoft, SQL Server. La
rrollos a medida sobre APIs o pro- La idea principal de todo este próxima versión de SQL Server, lla-
tocolos propietarios. Tres años des- desembarco tecnológico gira en tor- mada provisionalmente Yukon, per-
pués ya casi no nos acordamos de no a .NET. En la actualidad utiliza- mite utilizar .NET como modelo
todo eso. .NET ha conseguido mos la plataforma .NET para cons- para el desarrollo de la lógica de ser-
introducirse en la gran mayoría de truir la lógica de negocio, exponer vidor. Hasta ahora teníamos que
<<dotNetManía
las empresas de software y ha cam- su funcionalidad por protocolos cambiar nuestra forma de desarro-
biado el modo en el que desarrollá- estándares y accederla en cualquier llar dependiendo de si nuestro códi-
bamos aplicaciones. Aquel PDC del momento y desde cualquier dispo- go se ejecutaba en la lógica de nego-
20
<< dnm.opinion
cio o junto a los datos. En el primer mación relacional, sino también de versión del Framework será muy
caso disponíamos de la ayuda del datos semi-estructurados en forma importante, tanto que en lugar de 1.2
Framework .NET, su librería de cla- de XML. Almacenar estos datos como correspondería llevará el nom-
ses, la posibilidad de utilizar cual- puede parecer sencillo (un docu- bre de 2.0. Al estar alineado con
quier lenguaje y un entorno como mento XML no es más que una Yukon, Whidbey estará especial-
Visual Studio .NET. Sin embargo, cadena de texto), pero el procesa- mente adaptado para el funciona-
todo cambiaba si nuestro código
debía ejecutarse en el propio servi-
dor. En ese caso teníamos que utili-
zar el lenguaje T/SQL perdiendo la
riqueza de las clases .NET, la orien-
.NET ha conseguido introducirse en la gran mayoría
tación a objetos, la facilidad de depu- de las empresas de software y ha cambiado el modo
ración y un sinfín de cosas más. en el que desarrollábamos aplicaciones
En Yukon podemos decidir si
nuestro código .NET se ejecuta en
la capa de negocio o en el mismo ser-
vidor de datos, de hecho un proce-
dimiento almacenado en Visual miento de los mismos es mucho más miento conjunto con éste. Además
Studio .NET no es más que otro complejo. Yukon permite validar los de la capacidad de escribir la lógica
tipo de proyecto. Podremos utilizar documentos XML almacenados de servidor de Yukon, dispondremos
cualquier lenguaje para escribir el según un esquema XSD que defina- de una nueva versión de ADO.NET
procedimiento almacenado y acce- mos y realizar búsquedas sobre los que nos permitirá sacar el máximo
der a los tipos .NET, por ejemplo mismos de forma indexada, con el partido al motor de almacenamien-
de acceso al disco, cifrado de datos mismo rendimiento que una bús- to. La mayoría de estas característi-
o tratamiento de imágenes. Además, queda tradicional. Incluso podremos cas están enfocadas a conseguir
Yukon permite que el proceso de relacionar los datos estructurados mayor rendimiento y escalabilidad en
depuración e instalación sean tam- con los elementos XML y tratarlos nuestra capa de acceso a datos (ope-
bién automáticos. Cuando acabemos de forma conjunta. Todo ello utili- raciones asíncronas, paginación de
el procedimiento almacenado será zando estándares como XQuery, que resultados), pero también nos per-
instalado en el servidor remoto y permite realizar consultas sobre mitirán construir aplicaciones nue-
podremos depurarlo como cualquier documentos XML del mismo modo vas muy difíciles de desarrollar hasta
código .NET, ejecutándolo paso a que T/SQL permite realizarlas ahora (notificaciones sobre cambios,
paso o consultando el valor de las sobre datos relacionales. servicios de colas de mensajes).
variables. El acceso por servicios web a La mayoría de las nuevas caracte-
.NET está presente en el resto Yukon también está contemplado, rísticas de Whidbey están dirigidas a
de elementos de Yukon. Además de incluyendo un conector SOAP nati- aumentar la productividad del desa-
procedimientos almacenados, po- vo que puede exponer vistas XML rrollador. Visual Studio .NET incor-
dremos desarrollar triggers, funcio- de los datos relacionales y semi- pora mejoras espectaculares en el
nes, tipos definidos por el usuario y estructurados o ejecutar procedi- diseño de formularios web y
agregaciones de datos. Visual Studio mientos almacenados y sentencias Windows, pero también incluye por
.NET se convierte también en la T/SQL dinámicas. primera vez herramientas que asisten
herramienta de desarrollo de Analysis al desarrollador como el refactoring,
Server, DTS o el recién incorporado Whidbey plantillas de código parametrizables,
generador de informes. corrector automático, etiquetas inte-
Los otros elementos presentes en La próxima versión del ligentes, etc.
una arquitectura .NET orientada a Framework .NET y Visual Studio Desde luego la línea de código
<<dotNetManía
servicios son el XML y los servicios (nombre en clave Whidbey) estará ali- más productiva es la que no tienes
web. Yukon está pensado para el neado con Yukon en esta primera ole- que escribir. Por eso Whidbey au-
almacenamiento no sólo de infor- ada. El cambio que veremos en esta menta considerablemente el núme-
21
<< dnm.opinion
22
Por Marino Posadas
.NET MVP
www.elavefenix.net
Longhorn y el desarrollo
Es costumbre cada 2 años que Microsoft aporte una nueva versión de sus sistemas
operativos. No obstante, esta vez el período de tiempo será mayor, y según parece los
cambios internos en el sistema, también. Es la herencia de algo que comenzó con la
revolución .NET, de la cual esta edición de Windows es su exponente más completo.
Vamos a analizar algunas de las características de sus 3 APIs principales.
Point, algo de código fuente y artícu- to. Y lo cierto es que Longhorn va Windows 95), se ha denominado
los sobre el nuevo sistema operativo. a ser —en muchos aspectos— una Win32 pasa a ser WinFX, y estará
En el apartado dnm.desvan, puede revolución. Para comenzar, será el constituido por tres pilares funda-
23
<<dnm.windows
timedia, dentro de las aplicaciones estándar de objeto central llamado Application, que suminis-
Windows. tra todos los servicios clave que se necesitan para
24
<< dnm.windows
25
<<dnm.windows
<DockPanel xmlns="http://schemas.microsoft.com/2003/xaml"
xmlns:def="Definition" def:Language="C#" Background="White">
<FlowPanel ID="sourceFlowPanel"
MouseLeftButtonDown="OnLeftMouseDown"
Margin="10,10,0,0" Background="cyan" Width="150px"
Height="150px">
<Text ID="caption" Margin="10,10,20,20" FontSize="16">Click
on
Me</Text>
</FlowPanel>
</DockPanel>
</Window>
Figura 4:Ventana de salida
del código anterior. // C# Codebehind class
using System;
using MSAvalon.Windows;
Básicamente, Longhorn, crea using MSAvalon.Windows.Input;
una ventana a partir del elemento using MSAvalon.Windows.Controls;
using MSAvalon.Windows.Documents;
<Canvas> e incluye el resto de ele- using MSAvalon.Windows.Navigation;
mentos renderizando su interpreta- using MSAvalon.Windows.Shapes;
ción visual de acuerdo con los atri- using MSAvalon.Windows.Data;
butos establecidos para éstos (posi-
namespace Application1
ción, tamaño, etc.). {
Aunque los elementos utilizados public partial class Window1 : Window
en este sencillo ejemplo, no poseen {
private bool expanded = false;
más funcionalidad que la meramen- private void OnLeftMouseDown(object sender, MouseButtonEventArgs
te visual, podríamos asociarles accio- e)
nes o incluso dividir su codificación {
if (expanded)
en dos partes, como mencionába-
{
mos más arriba, codificando, por un sourceFlowPanel.Width = new
lado, la presentación (pongamos que Length(sourceFlowPanel.Width.Value/2);
creando un botón mediante el ele- sourceFlowPanel.Height = new
Length(sourceFlowPanel.Height.Value/2);
mento <Button>), o bien utilizando caption.TextRange.Text = "Pulsa";
código fuente equivalente. Veamos expanded = false;
esta equivalencia de la tabla 1, tal y }
else
como la señala Dino Esposito en su {
artículo “A First Look at Writing and sourceFlowPanel.Width = new Length(2 *
Deploying Apps in the Next Generation sourceFlowPanel.Width.Value);
sourceFlowPanel.Height = new Length(2 *
of Windows”:
sourceFlowPanel.Height.Value);
De la misma forma, podríamos caption.TextRange.Text = "Gracias por pulsar";
mezclar los dos códigos para que expanded = true;
—en un único archivo— tuviésemos }
<<dotNetManía
}
tanto el código declarativo como el }
funcional, tal y como podemos ver }
en la aplicación del fuente 1, que es
Fuente 1. Ejemplo de mezcla del código declarativo y el funcional.
26
<< dnm.windows
Creación de un botón de forma declarativa (código de marcas XAML) miento. WinFS se apoyará interna-
mente en el motor de Yukon (la
<Canvas xmlns="http://schemas.microsoft.com/2003/xaml">
<Button Canvas.Left="10"
nueva versión de SQL-Server, que
Canvas.Top="10" aparecerá este mismo año, hacia el
Width="90px" verano), y eso va a significar que
Height="32px">Pulsa</Button>
todo fichero formará parte de este
</Canvas>
sistema, capacitando al usuario la
Forma equivalente mediante código fuente en C# búsqueda con una rapidez similar a
la que obtenemos al buscar un dato
Button btn = new Button();
btn.Width = new Length(90);
en una base de datos.
btn.Height = new Length(32); En su vertiente programática,
Canvas.SetTop(btn, new Length(10)); WinFS se maneja utilizando las nue-
Canvas.SetLeft(btn, new Length(10));
vas librerías System.Storage y
btn.Content = " Pulsa ";
System.Storage.File, si bien exis-
Tabla 1 ten otras, como System.Search, que
permitirán la búsqueda de ficheros
un complemento extendido de la
//Acceso a ficheros de texto plano utilizando las API's de WinFs.
anterior (bien entendido que en este
caso, deberemos compilar el códi- using System;
go, para que el compilador de C# using System.Storage;
using System.Storage.Files;
produzca el ensamblado correspon-
diente, en el que se apoyará la par- class PruebaFicheros {
te funcional) (Ver Fuente 1).
static void Main() {
En lugar de utilizar una ventana
formateada al estilo Longhorn, con //Crea el fichero "Test.txt"
información de sistema, (objeto ItemContext ctx = ItemContext.Open();
Canvas), se utiliza una ventana sim- Folder folder = Folder.GetRootFolder(ctx);
string str = “”;
ple (elemento Window) en la que se file = new File (folder, "Test.txt");
define un botón y unas acciones aso- file.DisplayName = "Test.txt";
ciadas con él, que consisten en cam- file.Stream = System.Text.Encoding.ASCII.GetBytes (str);
file.Save ();
biar el tamaño del botón y el texto
del mismo. La gran ventaja de esta //Acceso al fichero
aproximación, no sólo es la posibi- file = folder.GetOneMemberWithName ("Test.txt") as File;
if (file != null)
lidad de interpretar esta interfaz de
{
usuario en distintos entornos (direc- str = System.Text.Encoding.ASCII.GetString(file.Stream);
to o host=navegador), sino que pue- }
den crearse marcos de interfaz de // Borrado del fichero
File file = folder.GetOneMemberWithName ("text.txt") as File;
usuario corporativos preestableci- if (file != null)
dos, a los que se le puede aplicar más {
tarde la lógica necesaria. file.Delete ();
}
Codificación en WinFS }
}
Uno de los mecanismos más
novedosos asociados con WinFS
<<dotNetManía
será la capacidad de búsquedas de Fuente 2. Ejemplo de acceso al sistema de ficheros a través de código.
ficheros y —en general— la nueva
forma de gestionar el almacena-
27
<<dnm.windows
por el contenido (ya sea parcial en su nombre, o mente del transporte. Y podemos distinguir
bien en sus datos internos), de forma similar a la dos tipos de puertos: con nombre y anóni-
característica Text Search, ahora presente en mos. Los puertos con nombre pueden ser
SQL-Server 2000. accedidos independientemente de cualquier
Para darnos una idea de lo simple que es el conexión o sesión de comunicaciones. Los
acceso por código al sistema de ficheros, obser- últimos sólo pueden accederse de forma
implícita, como parte del proceso de la
comunicación. De hecho, los únicos men-
sajes recibidos por un puerto anónimo serán
Todas las aplicaciones basadas en LongHorn, las respuestas a aquellos enviados a través de
serán totalmente orientadas a objetos, ese mismo puerto.
• En tercer término, se define un servicio como
y basadas en un objeto central
una pieza opaca de código que da soporte a
llamado Application. un puerto. Indigo se refiere a ese código eje-
cutable asociado al puerto como un servicio.
Y los servicios, pueden tener a su vez dos
características: políticas (policies) y contratos.
vemos el bloque del fuente 2, que crea, lee y, final- Las políticas indican las capacidades y requi-
mente, borra un fichero de texto plano. sitos del servicio, mientras que los contratos
Además, si utilizamos la nueva versión de establecen qué intercambios de mensajes son
Visual Studio .NET (Whidbey, todavía en fase aceptables para ese servicio (en términos de
beta) podemos observar mediante el examina- programación, los contratos serían similares
dor de objetos la convivencia de las librerías que a las interfaces, y de hecho, desde un progra-
utilizan las API’s de Win32 y las propias de ma, eso es lo que ocurre).
Longhorn. No olvidemos que la compatibilidad • Finalmente, los servicios se comunican con
será algo crítico respecto al nuevo sistema y, los puertos a través de canales. Un servicio
como ya se ha comentado, la desaparición total puede crear y usar un rango de canales para
del soporte Win32 haría que ninguna aplicación construir una aplicación. Las propiedades,
actual fuese capaz de funcionar en el nuevo sis- políticas y comportamientos de un canal,
tema. varían en función de las características de
comunicación que ese canal suministra.
Indigo y las comunicaciones El siguiente diagrama explica algo más esta
situación:
Para concluir esta breve introducción a las
características de Longhorn, y sus nuevas API’s
de programación, vamos a comentar algo sobre
Indigo, su sistema de comunicaciones.
Indigo se basa en 4 conceptos clave:
• Primero, un mensaje se ve como un con-
junto de datos que puede transmitirse gra-
cias a su conformidad con un modelo SOAP
(como es sabido, dicho modelo da soporte a
las transmisiones y recepciones de informa-
ción cuando utilizamos Servicios Web).
Fig 5. Esquema de objetos implicados
• En segundo lugar, los mensajes viajan a tra- en el transporte de mensajes
vés de puertos (ports). En Indigo, los puer-
<<dotNetManía
28
<< dnm.windows
noticias.noticias.noticias.noticias
Por Fernando Guerrero
SQL Server MVP
www.solidqualitylearning.com
<< Esto es algo que desde hace algún tiempo nos ha vado a lidiar los sistemas de bases de datos des-
sonrojado en esas reuniones en las que el “pro- de ambos roles, y la perspectiva de unir ambos
fesional” de turno nos intenta menospreciar mundos de ese modo tan íntimo me pareció de
haciéndonos ver cuán inferiores somos porque lo más interesante.
nuestro sistema de gestión de bases de datos sigue Tras la primera reacción, vino el pánico: ¿Que
siendo Transact-SQL, no ya ANSI SQL 99, sino cualquier perforista venido a más, va a querer eje-
nuestro viejo y vetusto Transact-SQL, en vez de cutar sus chapuceros programas dentro de mi ser-
“modernos” y “versátiles” lenguajes como Java. vidor de bases de datos? ¡Eso sí que no! ¡Hasta ahí
Ahora podemos decir altivamente: Pues nues- podíamos llegar! No, mire usted, este programa
tro sistema es incluso mejor… bueno… lo será se ha estado ejecutando sin problemas en un main-
pronto. frame durante muchos años, y lo hemos conver-
Una de las fundamentales mejoras de la anun- tido a Cobol.NET, así que… ¿En Cobol.NET?
ciada nueva versión de SQL Server es la posibi- ¿En mi servidor? Esto será una broma, ¿verdad?
lidad de utilizar cualquier lenguaje de progra- Pues no es una broma y en un futuro no muy
mación basado en .NET para crear procedi- lejano veremos como nuestro horizonte como
mientos almacenados, y otros objetos progra- programadores de bases de datos se expande
mables, en nuestras bases de datos. enormemente… o cambiaremos de trabajo.
30
<< dnm.servidores.sql
1
Puedes leer más sobre las mejoras en Transact-SQL para Yukon en
http://msdn.microsoft.com/library/en-us/dnsql90/html/sql_YukonTSQLEnhance.asp
2
Podéis encontrar este ejemplo en http://www.solidqualitylearning.com/conferences/
31
<< dnm.servidores.sql
32
<< dnm.servidores.sql
.NET, pero no es así. Para empezar Los autores proponen una serie de escenarios en los que utilizar técni-
la discusión, este libro comienza con cas de programación .NET podría resultar interesante:
dos apartados que anuncian muy cla- • Regular expressions
ramente el talante del documento: • Gestión avanzada de cadenas de caracteres
• Limitations of T-SQL (Limita- • Criptografía
ciones de Transact-SQL) • Gestión del registro de eventos
• Advantages of CLR Integration • Acceso directo a ficheros
(Ventajas de la integración con • Acceso a biblioteca de funciones financieras
el CLR) • Ejecución de complejas operaciones matemáticas
• Cálculo geométrico
Si lo hubiera escrito yo, quizá • Complejas funciones de agregación
hubiera añadido otras secciones como:
• Advantages of set oriented pro- En cuanto a regular expressions, tengo que decir que los ejemplos pro-
gramming with T-SQL (Ven- puestos pueden codificarse en la mayoría de los casos muy eficientemente
tajas de la programación orien- en Transact-SQL, probablemente combinado CASE con el operador LIKE.
tada a conjuntos de registros Lo mismo podría decirse en cuanto a la gestión avanzada de cadenas de
con Transact-SQL) caracteres, aunque esto podría simplificarse mediante funciones que .NET
• Potential problems with CLR pro- ya ofrece, por lo que en aras de la comodidad (¿pereza?) podríamos prefe-
gramming (Problemas po- rir la utilización de .NET.
tenciales de la programación Sin embargo hay que entender algo muy importante: la incorporación
con CLR) de funciones de .NET no es gratuita, y tiene unas implicaciones claras en
el rendimiento de las consultas, ya que el sistema debe hacer llamadas a otro
Y es que este libro blanco, aun- subsistema para ejecutar estas funciones CLR. De algún modo, estamos
que aprecio los conocimientos de ante un caso similar a la utilización de Interop para utilizar objetos COM
los autores, a los que he tenido el desde .NET. Por lo tanto es imprescindible asegurarse de que la utilización
placer de conocer en persona, refle- de funciones de .NET no perjudica el rendimiento de nuestras consultas.
ja lo que a mi juicio puede ser la Por ejemplo, la expresión regular:
equivocación más grande que pue-
de producirse con esta nueva ver- Return Regex.IsMatch(zipCode, "^\s*(\d{5}|(\d{5}-\d{4}))\s*$")
sión de SQL Server: la separación
total entre dos mundos que deberí-
an entenderse: programadores de Puede sencillamente convertirse a T-SQL como:
bases de datos con T-SQL y pro-
gramadores de .NET. Solo hay que
SELECT CASE
echar un vistazo a los ejemplos de WHEN @zipCode
código propuestos para ver que sólo LIKE '[0-9][0-9][0-9][0-9][0-9]'
un par de páginas contienen ins- THEN 1
WHEN @zipCode
trucciones T-SQL que no sean sim- LIKE '[0-9][0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]'
plemente CREATE. THEN 1
<< ELSE 0
END
33
<< dnm.servidores.sql
cutar procesos complejos, como as Carretera). Las posibilidades po- librería de procedimientos en .NET
criptografía, complejos cálculos drían ser inimaginables para el pro- y los llamaría automáticamente des-
matemáticos y geométricos, o inte- gramador de bases de datos de hoy de la misma base de datos para
gración con procesos externos. en día. garantizar la consistencia de la infor-
Una importante aplicación de las Supongamos que una regla de mación en todo momento.
bases de datos es su utilización con negocio podría ser que las parcelas En aquél proyecto, el corazón del
Sistemas de Información Geográfica que estén a menos de 100 metros de sistema era una aplicación escrita en
(GIS en sus siglas en inglés). A mí me la costa no se pueden vender. Visual Basic, en Yukon posiblemen-
ha tocado lidiar con este problema
durante algunos años, y no es un pro-
blema tan simple como pueda pare-
cer. Utilizar datos geográficos impli-
en un futuro no muy lejano veremos como nuestro
ca utilizar operadores como distan-
cia, superficie, proximidad, etc. horizonte como programadores de bases de datos
Implementar estos operadores en T- se expande enormemente… o cambiaremos de trabajo
SQL es poco menos que imposible.
Diseñar una base de datos que sea
capaz de almacenar eficientemente la
topología de un espacio geográfico,
no es tarea fácil, si queremos restrin- Podríamos llegar a implementar esta te sería un conjunto de assemblies
girnos al terreno del diseño relacio- regla directamente en el mismo tipo escritas en Visual Basic .NET (¿por
nal. Intentar la implementación de de datos, y el sistema se encargaría qué no?)
operadores espaciales mediante la uti- de su cumplimiento independiente- Sé que esto me valdrá el califica-
lización de T-SQL en procedimien- mente del método utilizado para tivo de hereje, pero soy un firme
tos almacenados y funciones defini- modificar estos datos. defensor de Visual Basic .NET
das por el usuario, es poco menos que En un sistema que me tocó dise- como lenguaje de programación
imposible en la mayoría de los casos. ñar para un proyecto en Marruecos .NET por excelencia para progra-
Empresas del mundo GIS, como hace ya algunos años, me tocó inte- madores de bases de datos acos-
ESRI (www.esri.com), han solucio- grar diversas aplicaciones de oficina tumbrados a utilizar hasta ahora
nado el problema mediante la utili- con una base de datos de SQL Transact-SQL, ya que la sintaxis y
zación de librerías externas y la uti- Server (la empecé con 4.21 y la aca- la experiencia de programación se
lización masiva de información codi- bé con 6.5). El proceso de cálculo de asemejan mucho.
ficada dentro de campos BLOB, con programación de tareas era tan com-
una estructura propietaria de la plejo que MS Project no podía eje- Rendimiento
empresa. cutarlo (aún la última versión de este
Ahora imaginemos que podemos producto es incapaz de hacer este Se ha hablado mucho acerca de
crear tipos definidos por el usuario, tipo de cálculos), lo que me obligó la potencial ventaja de rendimiento
como por ejemplo: a crear una aplicación externa que que la utilización de procedimien-
tos de .NET tendría con respecto a
los tradicionales procedimientos
CREATE TYPE Parcela EXTERNAL NAME YukonCLR:Parcela
escritos en Transact-SQL, pero la
realidad aún no ha corroborado estas
Y que este tipo de dato Parcela hacía todo ese cálculo y almacenaba predicciones. El producto se
no solamente tuviera propiedades los resultados en SQL Server, utili- encuentra aún en Beta 1 y es muy
como Superficie, Propietario(s), zando MS Project simplemente para pronto para realizar pruebas de ren-
ValorCatastral, sino que también imprimir bonitos diagramas dimiento.
<<dotNetManía
pudiéramos implementar funciones GANTT. Si hubiera tenido en mis Sin embargo, como dato curioso,
como DistanciaA(@OtraParcela as manos SQL Server Yukon, hubiera podríamos comentar que Microsoft
Parcela) o DiatanciaA(@MiCarretera creado todo el proceso como una había decidido la implementación de
34
<< dnm.servidores.sql
algunos nuevos tipos de datos en .NET y, tras las para gestionar la memoria asignada a procedi-
pruebas preliminares de rendimiento que se han mientos almacenados se verá seriamente mer-
efectuado, se ha decidido su implementación como mada, y el rendimiento del sistema se degrada-
tipos de datos nativos. rá enormemente.
Como criterio general, y basándome en la
información de que dispongo en estos momen-
tos, la llamada puntual a procedimientos de .NET
para ejecutar complejos procesos matemáticos
proporcionará ventajas innegables a los progra-
madores de Yukon. Sin embargo la llamada repe- Microsoft había decidido la implementación
tida, por ejemplo registro a registro, de cortas de algunos nuevos tipos de datos en .NET y,
funciones de .NET desde código Transact-SQL, tras las pruebas preliminares de rendimiento
será en general más lento que la invocación de que se han efectuado, se ha decidido su
esta funcionalidad en Transact-SQL directa-
implementación como tipos de datos nativos.
mente.
Otro factor muy importante a tener en
cuenta es el impacto que la utilización de estos
procedimientos pueda tener en la utilización
de la memoria disponible para SQL Server.
Cada vez que se ejecuta un objeto programa- Conclusión
ble, SQL Server crea un contexto de ejecución
privado para esta llamada en particular, que Las mejoras en SQL Server siempre son bien-
facilite la ejecución simultánea de procedi- venidas, y la posibilidad de programar en dife-
mientos, sin que los datos de estas llamadas rentes lenguajes de programación es algo que lle-
independientes se mezclen. Si quieres obtener vábamos esperando bastante tiempo, y que hace
información sobre estos contextos de ejecu- fácilmente volar nuestra imaginación.
ción, puedes ejecutar la siguiente consulta en Sin embargo, es necesario estudiar seriamen-
SQL Server 2000: te en cada caso las ventajas o desventajas que la
utilización de esta tecnología ofrece para aplicar
la solución de programación más adecuada a cada
SELECT cacheobjtype, objtype, problema.
objid, dbid, dbidexec, uid,
Ahora más que nunca, las empresas deberán
refcounts, pagesused, sqlbytes,
sql aplicar criterios muy estrictos en cuanto a polí-
FROM master.dbo.syscacheobjects ticas de nomenclatura y codificación, para ase-
gurarse que serán capaces de mantener sus apli-
caciones de bases de datos.
Yo he visto sistemas en los que cada contex- Estoy firmemente convencido de las ventajas
to de ejecución ha llegado a tener algunos de esta tecnología, y me muero de ganas de apli-
megabytes de información. Y es que en este con- carla a sistemas reales, pero, sin la adecuada for-
texto de ejecución, SQL Server almacena valo- mación y entrenamiento, esto podría desembo-
res de variables privadas, y estructuras tempora- car en graves problemas para muchos sistemas
les de registros en memoria, como los resultados de bases de datos.
intermedios de algunas consultas complejas. Aquellas empresas que inviertan en formación
Ahora supón que dentro de tus procedi- y detallado análisis de sus sistemas, obtendrán
mientos almacenados creas estructuras com- innegables beneficios de estas nuevas posibilida-
plejas de datos, como objetos DataSet con des de programación. Sin embargo, aquellas
<<dotNetManía
muchos registros. En este caso, el contexto de empresas que sigan potenciando la chapuza y la
ejecución de cada usuario será anormalmente precariedad en la formación de sus técnicos, se
grande, con lo que la capacidad de SQL Server verán encaminadas al fracaso más rotundo.
35
Por Francisco Charte
Torre de Babel
www.fcharte.com
rencia de lo que ocurrió con VS.NET 2003, posibilidad de efectuar modificaciones al códi-
incorpora un importante número de novedades go de un ensamblado durante la depuración y,
que afectan a prácticamente todos los elemen- sin reiniciar, seguir con la ejecución, forma par-
36
<< dnm.plataforma.net
37
<< dnm.plataforma.net
líneas de división de paneles en una acceso directo al menú Inicio de me parecen de mayor importancia.
ventana; ActiveDocumentHost, Windows y una opción de desinsta- Diseñar aplicaciones Web nunca
útil para alojar en una aplicación lación. Las aplicaciones, además, habrá resultado tan fácil y rápido como
objetos ActiveX como pueden ser los pueden ser configuradas para detec- con la llegada de la nueva versión de
documentos de Office; WebBrowser, tar automáticamente la existencia ASP.NET gracias a elementos como
un cliente Web en un control, etc. de actualizaciones en el servidor, las páginas maestras, la adición de cua-
También se han mejorado las barras impidiendo así que los usuarios renta y cinco nuevos componentes con
de botones y herramientas para que empleen una versión desfasada de la una apariencia fácilmente adaptable
aprovechen los temas de Windows solución. por temas y la incorporación de ele-
XP y tengan una apariencia similar En el entorno de Visual Studio mentos funcionales comunes como
a las barras de Microsoft Office. .NET existe una nueva opción de son la gestión de los miembros de un
Además de los componentes pro- publicación que abre un asistente sitio y sus preferencias.
piamente de interfaz, hay otros que —en la figura 1 se ve uno de sus Todos los componentes de for-
también influyen en la funcionalidad pasos— mediante el que se facilita mularios Web, aquellos que tienen
de las aplicaciones Windows. De ellos
destacamos los nuevos GridView y
DataContainer, controles de vincu-
lación a orígenes de datos, y el com-
ponente BackgroundWorker que
hace posible la ejecución de tareas en
un hilo independiente del principal
simplemente respondiendo a un even-
to, sin necesidad de crear un objeto
Thread y gestionarlo manualmente.
Figura 2.Visual Studio .NET Whidbey
Uno de los mayores problemas dispone de nuevos asistentes para la
que plantean las aplicaciones Win- creación de sitios Web
dows, en contraposición a las aplica- Figura 1. El asistente
para publicación de aplicaciones
ciones Web, es la dificultad que plan-
tea su distribución, instalación en los
clientes y posterior mantenimiento,
especialmente en empresas grandes la preparación del proyecto para que el prefijo <asp:>, son capaces de
con muchos puestos y diferentes loca- sea accesible para los clientes. generar HTML, cHTML, WML,
lizaciones geográficas. La versión XHTML, etc., posibilitando el acce-
Whidbey de la plataforma .NET solu- so a las aplicaciones desde práctica-
Formularios Web
cionará este problema a través de una mente cualquier dispositivo móvil
técnica que Microsoft ha denomina- Si importantes son las mejoras actual, tales como los Pocket PC o
do ClickOnce. para el desarrollo de aplicaciones teléfonos de última generación.
Mediante ClickOnce es posible cliente basadas en formularios Las nuevas posibilidades se ven
alojar la distribución de una aplica- Windows, no lo son menos las des- reflejadas en el entorno de VS.NET
ción en un servidor HTTP, un ser- tinadas a simplificar y optimizar la que, como se aprecia en la figura 2,
vidor FTP o una unidad comparti- creación de soluciones ASP.NET, en dispone de asistentes específicos
da de red, de tal manera que los especial las que emplean los ele- para la creación de sitios Web públi-
potenciales clientes no tienen más mentos conocidos como formularios cos, aplicaciones para intranets, etc.
que usar una dirección UNC o Web. No me extenderé mucho en Por cierto, para desarrollar apli-
URL, por ejemplo http://servi- este apartado y remito al lector al caciones Web ya no necesitaremos
dor.empresa.com/MiAplicacion, artículo monográfico que, sobre el las extensiones de FrontPage, es más,
<<dotNetManía
para conseguir una instalación auto- tema, escribirá Iván González en un ni siquiera será preciso disponer de
mática en su ordenador, incluyen- próximo número, por lo que men- IIS ya que ASP.NET incorpora aho-
do la adición del correspondiente ciono exclusivamente los puntos que ra su propio servidor Web exclusivo
38
<< dnm.plataforma.net
para desarrollo, un servidor que se inicia al abrir- mos normalmente en una aplicación para repre-
se VS.NET y deja de estar disponible al cerrar el sentar desde un punto de vista lógico los ele-
entorno. mentos sobre los que actuamos, como pueden
Acceso a datos ser clientes, pedidos, transacciones, etc. De esta
forma se consigue un nivel de abstracción muy
La introducción de ADO.NET en la prime- superior al que teníamos hasta el momento, lo
ra versión de la plataforma supuso, respecto a cual redunda en menos trabajo para conseguir el
otros modelos de acceso a datos, una cierta revo- mismo objetivo.
lución por la flexibilidad ofrecida a la hora de Además de las mencionadas, existen muchas
operar sin conexiones persistentes y la existencia otras mejoras, que no cambios, en ADO.NET,
de un esquema, basado en componentes de cone- como puede ser el acceso asíncrono a los datos
xión, adaptadores y conjuntos de datos, muy con- que evitan el bloqueo de la interfaz de usuario,
sistente. El mayor inconveniente es que este la posibilidad de efectuar actualizaciones por
esquema implicaba un necesario conocimiento lotes, la existencia de nuevos tipos de datos y la
de la estructura de los datos y el origen en que integración con Yukon o la mejora en el rendi-
residían, debiendo elegirse un conjunto de obje- miento de transferencia de resultados gracias a
tos u otros dependiendo de ello. las optimizaciones introducidas en clases como
En la versión Whidbey de ADO.NET se ha DataSet. También se ha eliminado la depen-
hecho especial hincapié en facilitar la mayoría de dencia de los MDAC (Microsoft Data Access
las operaciones sin perder un ápice de esa flexi- Components), simplificando así la distribución de
bilidad, gracias a la incorporación de un conjun- las aplicaciones.
to de clases genéricas, como son DbConnection
o DbTable, independientes del proveedor de
datos, así como la existencia de un modelo de fac-
toría que se encarga de crear los objetos especí-
ficos y facilita operaciones de enumeración de
proveedores y servidores disponibles. No ten- En la versión Whidbey de ADO.NET
dremos, por tanto, que saber de antemano si los se ha hecho especial hincapié en facilitar la mayoría
datos residen en un servidor SQL Server u Oracle
de las operaciones sin perder un ápice
para, en consecuencia, elegir un grupo de clases
u otras. de flexibilidad.
La clase DbTable en particular, descendien-
te de DataTable y base de clases más específicas
como OracleDataTable o SqlDataTable, cuen-
ta con todos los elementos necesarios para conec-
tar con un origen de datos, recuperar filas, intro-
ducir cambios y enviarlos de vuelta sin necesidad Lenguajes Whidbey
de crear todos los objetos que eran precisos en
versiones previas. La versión Whidbey de la plataforma .NET
Gracias a los denominados ObjectSpaces, apli- traerá consigo, además de cambios en la BCL,
cables en principio sólo a SQL Server 2000 y nuevas versiones de los compiladores de Visual
Yukon, será posible prescindir durante el desa- Basic .NET, C# y Visual C++ .NET. Todos ellos
rrollo del conocimiento de la estructura física de contemplan aspectos como la definición y uso de
los datos y detalles como la conexión o trata- tipos genéricos, a partir de diferentes sintaxis,
miento de filas individuales. El nuevo ámbito tema que merece un tratamiento aparte para ser
System.Data.ObjectSpaces contiene una serie descrito como se merece. También hay algunas
<<dotNetManía
39
<< dnm.plataforma.net
apuntar, no obstante, que trabajamos con una así como el menú adjunto a la etiqueta inteligen-
versión alpha de dicho entorno, que ni siquie- te con opciones que permiten añadir un formu-
ra una beta, por lo que es de esperar que en la lario de detalle o modificar los parámetros de éste.
40
<< dnm.plataforma.net
mentos que deben sustituirse manual- ayuda sobre parámetros que apare-
mente para ser adecuados a cada ce normalmente en una etiqueta flo-
necesidad particular, elementos que tante, así como establecer marcas y
41
<< dnm.plataforma.net
ver rápidamente dónde hemos introducido cam- SOA (Service Oriented Applications). Este diseña-
bios gracias a las líneas de revisión. dor definirá, mediante el uso de diagramas, la
Si trabajamos con VB.NET, durante la depu- estructura lógica de los datos y sus interacciones
ración podemos introducir modificaciones en el con los componentes, siendo capaz de generar
código y continuar con la ejecución sin necesi- interfaces y clases, así como de efectuar ingenie-
dad de reiniciarla. Esta característica, descrita al ría inversa sobre el código ya existente.
inicio del artículo, está implementada en el núcleo Hay que destacar que estos diseñadores que
de la plataforma, pero, por ahora, tan sólo se ha aparecerán en VS.NET Whidbey son totalmen-
aprovechado con Visual Basic. te independientes de Visio, un producto que
El anclaje de las distintas ventanas que com- seguiría manteniéndose como opción para inge-
ponen el entorno resulta ahora más sencillo. Al nieros del software.
arrastrar una ventana aparecen una serie de ele-
mentos semitransparentes que nos indican el pun- Resumiendo
to en el que hemos soltar para anclar en ese mar-
gen, al tiempo que en la línea de estado obtene- A pesar de que, como ya he comentado, nos
mos indicaciones adicionales. encontramos ante una versión muy preliminar
de lo que serán la plataforma .NET y VS.NET
Whidbey, podemos afirmar sin dudarlo que se tra-
tará de una revisión realmente importante, mucho
más de lo que fue Everett. La integración con
Yukon, las mejoras en el desarrollo para disposi-
tivos móviles o la posibilidad de crear aplicacio-
nes para Office harán de este producto la herra-
mienta de desarrollo universal.
Si contamos con la versión preliminar de
Longhorn y el correspondiente SDK, VS.NET
Whidbey también nos servirá como avanzadilla
Figura 9. Elementos visuales que facilitan para ir conociendo lo que nos ofrecerá Orcas, el
el anclaje de las ventanas sucesor de Whidbey y que estará capacitado para
aprovechar el nuevo WinFX al completo: Avalon,
Indigo y WinFS. Como se aprecia en la figura
10, la integración del SDK con Whidbey nos
permite ir ya abriendo boca.
Diseño de servicios Web
¿Cómo es posible que en un artículo sobre
Microsoft .NET no haya aparecido aún el tér-
mino servicio Web? No es que me haya olvidado
de esta parte, que lógicamente sigue estando pre-
sente en VS.NET Whidbey, sino que la he deja-
do para el final sencillamente porque aún es difí-
cil evaluar las novedades dado que no se encuen-
tran disponibles en la versión alpha que Microsoft
ha distribuido.
No obstante, según la información facilitada
por el equipo de ASP.NET la versión Whidbey Figura 10. El SDK de Longhorn añade
<<dotNetManía
42
entra en otro concepto de
di
se www.eride.net
ño
grupo éride
diseño gráfico • diseño web • diseño editorial
c/collado bajo.13 28053 madrid
diseño gráfico • diseño web • diseño editorial
Tel.: 91 477 48 85
✃ Suscripción a dotNetManía
Deseo suscribirme a dotNetManía por un año (11 ejemplares) y beneficiarme de la oferta del 10% de descuento por un importe total de 60
para España y Portugal; o por 75 para el resto de Europa; o por 120 para el resto del mundo (IVA incluido).
La suscripción se entiende a partir del número actual.
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 Caixa
Número de cuenta 2100 4315 48 2200014696
(Indique su nombre en la transferencia)
❑ Domiciliación Bancaria
Indique su número de cuenta:
❑ Tarjeta de crédito
❑ VISA ❑ MASTERCARD ❑ AMERICAN EXPRESS
Número de su tarjeta:
Fecha de caducidad: / (Imprescindible)
a de de 20
Usted autoriza a la mecanización de estos datos. El responsable y destinatario de éstos es Netalia, S. L. Usted tiene derecho a acceder a sus datos, modifi-
carlos y cancelarlos cuando lo desee. Sus datos no serán cedidos en ninguna de las formas posibles a terceras partes y no se utilizarán más que para el buen
funcionamiento de su suscripción a la revista dotNetMania y para informarle de las actividades comerciales que realice la editorial Netalia, S. L. Si no desea
recibir información comercial de esta empresa marque la casilla siguiente ❑
Por Juan Torres
Antigoto
www.indesia.com/AniGoto
a cabo un fin. Por el contrario, desde el punto diagramas de flujos para representar estas
de vista orientado a objeto, el software se orga- funciones y en definitiva agruparemos las
niza como una colección de objetos que contie- funcionalidades para ir creando subpro-
44
<< dnm.arquitectura.uml
gramas. Vemos cómo lo que más nos impor- a Objetos. Para entender su significado debemos
tará son los verbos del enunciado de los entender qué es Modelar. Según la Real Academia
requisitos para transformarlos en trozos de de la Lengua Española, un modelo es “un esque-
código (algoritmos). ma teórico de una realidad compleja, que se elabora
• Desde un punto de vista orientado a obje- para facilitar su comprensión y el estudio de su com-
to, empezaremos estudiando los objetos que portamiento”. Por tanto, modelar quiere decir
aparecen en nuestro problema. En este diseñar esos esquemas teóricos para facilitarnos
caso, el objeto “alumno”, el objeto “profe- la comprensión del entorno de nuestro problema,
sor”, “asignatura”… y viendo la forma en si además seguimos la filosofía antes descrita esta-
que éstos interactúan y se relacionan. remos llevando acabo un Modelado Orientado a
Usaremos diagramas de objetos para repre- Objeto (por hacer un símil, modelar es realizar los
sentarlo todo y las funciones aparecerán planos de un edificio antes de enfrentarnos a su
como el comportamiento o interrelación construcción).
de dichos objetos. Lo que más nos impor- En este artículo vamos a referirnos siempre a
tarán serán los sustantivos del enunciado orientación a objeto en general, aunque de lo que
de los requisitos. más vamos a hablar es de metodologías de mode-
lado orientado a objeto que podamos usar para
llevar a cabo un desarrollo completamente orien-
Diferencias entre programación,
tado a objeto.
desarrollo y modelado orientados
a objetos Metodologías Orientadas a Objeto
Después de haber intentado diferenciar ambas Han sido muchos los autores que han pro-
formas de pensar, debemos estudiar las diferen- fundizado en la orientación a objeto. Creando
cias entre programación, metodologías, desa- reglas, técnicas, diagramas, etc., que facilitan en
rrollo y modelado orientados a objeto. Todos gran medida la tarea de modelar. De la recopi-
estos temas se refieren en realidad a lo mismo, lación y organización de éstas han surgido dife-
pero vistos desde diferentes enfoques o puntos rentes metodologías a lo largo de estos años
de vista. El adjetivo “Orientado a Objeto” se colo- (desde los 80). Podemos nombrar muchas como
ca a cualquier actividad relacionada con el desa- la Object Modeling Technique (OMT, Técnica de
rrollo de software que siga el punto de vista antes Modelado a Objeto), la OMT-2, el método
mencionado. El tema más conocido es la Pro- Object Oriented Software Engineering (OOSE,
gramación Orientada a Objeto, que consiste en el método de ingeniería del software orientado a
uso y creación de lenguajes de programación que objeto) o el Unified Modeling Language (UML,
implementen herramientas que permitan codi- Lenguaje Unificado de Modelado). De autores
ficar los programas manteniendo esta filosofía. como James Rumbaugh, Grady Booch, Ivar
Lógicamente, el ciclo de vida del software se com- Jacobson entre otros. Todas ellas son útiles a
pone de muchas más etapas, y en todas ellas la hora de enfrentarse con un desarrollo, aun-
podríamos usar esta forma de pensar. Por lo que que lógicamente las hay más y menos popula-
también podemos hablar de Análisis Orientado a res. La popularidad no siempre quiere decir
Objeto, Diseño Orientado a Objeto, etc. Sólo cuan- mayor calidad, pero en este caso supone un valor
do utilicemos esta filosofía durante todas las fases añadido. Y digo esto porque el ser más conoci-
podremos hablar de Desarrollo Orientado a Objeto. da y por lo tanto usada entre la comunidad de
Cuando hablamos de metodologías orientadas a desarrolladores (analistas, programadores, etc.)
objeto nos referimos a las reglas, técnicas, dia- supone que la documentación generada es más
gramas, etc., descritos por diferentes autores, y convencional (se atiene a las normas mayorita-
<<dotNetManía
que nos permiten llevar a cabo ordenadamente riamente observadas) y porque además encon-
nuestro trabajo; siempre desde esta forma de pen- traremos más personal para continuar o parti-
sar y trabajar. Y por último, el Modelado Orientado cipar en ellos fácilmente.
45
<< dnm.arquitectura.uml
como comportamiento. software, que ofrece las pautas de la tarea de generar el código. Y digo
trabajo y documentación a la hora bien “generar” y no “crear” el códi-
de construir sistemas para las dife- go, porque tras un buen análisis y
46
<< dnm.arquitectura.uml
diseño orientado a objeto, gran par- Xerox Parc). Mucha gente lo con- jeto a uno procedimental es el
te de las líneas de nuestro programa sidera el primer lenguaje orientado Pascal. El producto que más popu-
serán automáticas. Pero ¿qué carac- a objeto. Smalltalk no es sólo un len- laridad le ha dado ha sido el
terísticas debe cumplir un lenguaje guaje, sino todo un entorno de desa- Borland Delphi, en el que se unirían
para ser considerado un verdadero rrollo, prácticamente un sistema un compilador de Object Pascal,
Lenguaje Orientado a Objeto? operativo que corre encima de una una buena librería de clases y un
Las características mínimas son "máquina virtual". Y todo en su potente entorno de desarrollo de
las siguientes: entorno son a su vez objetos que última generación.
podemos manejar, reutilizar y exten-
• Debe permitir el uso de objetos y der. Se ha usado durante muchos Java
clases de objetos. El lenguaje debe años sobre máquinas Digital, IBM,
proveer una sintaxis para las etc., y otros muchos lenguajes lo han Este es uno de los lenguajes orien-
clases (como plantillas para cre- tomado como modelo. tados a objeto más populares en la
ar objetos), que permita agru-
par sus datos y funcionalidad, class name Ventana
y mecanismos de instanciación superclass Object
(creación) de objetos a partir instance variables
v1 v2 v3 v4
de éstas.
• Debe permitir la creación de rela- class methods
ciones entre los objetos. Existirán crearA: unPunto deAnchura: ancho deAltura: alto
mecanismos sencillos que per-
instance methods
mitan plasmar las relaciones anadirCuadradoEn: unPunto deAnchura: ancho deAltura: alto
entre objetos que aparecen en
el análisis.
• Deben existir mecanismos espe- Fuente 1. Ejemplo de código en SmallTalk
47
<< dnm.arquitectura.uml
El Lenguaje Unificado de Modelado portancia, aunque dependerá del podrían poseer un método Calificar
sirve para visualizar, especificar, tipo de proyecto el que uno u otro lo que les permitiera colocar una nota
construir y documentar un proyec- sea más. para un Alumno.
48
<< dnm.arquitectura.uml
49
<< dnm.arquitectura.uml
<<
sitivos hardware, etc. En el ejemplo, nuestro
sistema interaccionaría con el Ministerio de
Educación para convalidar los programas de las
asignaturas) y la forma en que el sistema será
utilizado (los llamados Casos de Uso; un caso de
uso podría ser la forma en que ve nuestro sis-
tema un Profesor).
Todo ello se hará diseñando una serie de dia-
gramas. En este caso usaremos:
• Diagramas de Casos de Uso. En éste repre-
sentaremos a cada una de las formas en que
nuestro sistema será usado (casos de uso) y
los actores (entidades externas como perso-
nas, hardware u otros sistemas) que inte-
ractúan con él.
• Diagramas de Interacción. Sirven para mos-
trar el paso de mensajes a través de los obje-
tos. Se dividen en Diagramas de Secuencia y
de Colaboración. Su diferencia radica en que
los de secuencia hacen hincapié en la orde- ejecutará, qué archivos usará, etc. Para ello usa-
nación temporal de los mensajes, es decir, remos dos tipos de diagramas principales:
de en qué orden se envían; en cambio los de • Diagramas de Componentes. Lo usaremos
colaboración se centran en el flujo de con- para representar la organización de las par-
trol entre objetos. tes o componentes del sistema (en nues-
• Diagramas de Estados. Éstos no son más que tro ejemplo si usásemos una arquitectura
la representación en forma de máquinas de Cliente/Servidor podríamos representar
estados del cambio en los valores de sus el ejecutable del lado cliente y la base de
propiedades durante la vida de los objetos. datos de servidor con la información del
Es decir, representaremos como un estado centro).
a los posibles valores de las propiedades de • Diagramas de Despliegue. Los usaremos para
un objeto en un momento determinado y mostrar los nodos en que trabajan dichos
a través de qué evento podrá pasar a otro componentes (en nuestro caso las máquinas
estado (dentro de estos diagramas existe un clientes y los servidores).
caso particular, los Diagramas de Actividades,
que se centra en un tipo de estados deno- Para todo el modelado existe una notación
minados estados de actividad). concreta, pero UML deja abierta la posibilidad
de extender la notación a través de los denomi-
Modelado Arquitectónico nados estereotipos (elementos que no pertenecen
a la notación pero que hemos añadido para exten-
<<dotNetManía
En esta última parte del modelo estudiaremos derla) o bien colocando notas aclaratorias. En
la parte física del sistema. Cómo se dividirá en determinadas partes, como la arquitectónica son
ejecutables, bibliotecas, etc., en qué máquinas se muy utilizados.
50
dnm.laboratotio.net
<< Después de la aparición de Delphi como un fabricante más fiable. Aplicaciones Windows Forms
8 para .NET Framework, creo que Rumores corrían por entonces de
a pocos les quedarán dudas ya de la posible desaparición de Borland Las aplicaciones Windows
que Win32 está tocando a su fin. ¿Quién se arriesgaría a pasar sus Forms están basadas en la biblio-
Ahora tenemos la posibilidad de desarrollos a un lenguaje, por bue- teca de clases y componentes del
hacer el cambio hacia el código no que fuese, cuyo fabricante se .NET Framework, lo que repre-
gestionado de .NET Framework tambaleaba? senta toda una novedad para los
también con Delphi. Ahora existe un entorno de pro- programadores de Delphi. Los
Aún recuerdo los años en los gramación a la medida de las nue- conocimientos de la VCL servirán
que Delphi competía con Visual vas tecnologías, sin basarse en lo a medias a la hora de desarrollar
Basic para atraer a los cientos de antiguo, estructurado, con una aplicaciones Windows Forms. Sin
miles de programadores que que- arquitectura irreprochable, con embargo, el lenguaje de progra-
rían migrar desde el viejo DOS a lenguajes igualmente irreprocha- mación sigue siendo Delphi.
un entorno de desarrollo Windows. bles, y además, y lo mejor de todo, En las aplicaciones Windows
Casi todos veíamos en Delphi, al es que ¡el lenguaje nos da igual! Forms la biblioteca de clases y
lenguaje más estructurado, al mejor, componentes es nueva. Los nom-
pero también veíamos a Microsoft Aplicaciones VCL Forms bres de las clases son nuevos, los
la migración de aplicaciones
Delphi 7 ó anteriores a la plata-
forma .NET.
52
<< dnm.laboratorio.net
53
<< dnm.laboratorio.net
54
<< dnm.laboratorio.net
diagrama de clases del código fuen- Productos ALM los programadores Delphi dar un paso
te del proyecto. Este diagrama es adelante hacia la plataforma .NET sin
estático y no puede ser modificado. • Definición: Acceso a CaliberRM abandonar sus desarrollos actuales, así
desde el IDE. como aprovechar las ventajas de la
Delphi 8 para .NET y ALM • Diseño: Herramientas de mo- plataforma .NET y al mismo tiempo
delado UML integradas. la extiende con la VCL.NET, ECO
Delphi 8 para .NET se integra • Desarrollo: Delphi 8 para y la integración con las herramientas
perfectamente con el conjunto de .NET. ALM de Borland.
herramientas que forman parte de • Optimización: Integración con
la estrategia ALM (Application OptimizeIt Profiler para .NET.
Lifecycle Management) de Borland. • Despliegue: InstallShield Express,
Los productos ALM permiten InterBase 7.1, Janeva. Este artículo ha sido elaborado con la
que los administradores, diseñado- • Administración: Acceso a Star- colaboración de Borland Ibérica y
res, desarrolladores, responsables de Team desde el IDE. Danysoft. Para más información con-
las implementaciones y responsables sulte en http://www.borland.es y en
de las pruebas estén conectados en Resumen http://www.danysoft.com.
tiempo real, sin importar su locali-
zación, mejorando la productividad Delphi 8 para .NET es una herra-
y acelerando todas las etapas del pro- mienta de desarrollo para la creación
ceso de desarrollo de software. de aplicaciones .NET que permite a
Nuevo en ComponentOne Studio barras de herramientas para .NET WebSpell IDE para ASP .NET
Enterprise 2004 v1 ahora soportan el aspecto y forma incluye un botón “Cambiar Todo”;
• ComponentOne VSFlexGrid Pro 8: de trabajar de Microsoft Office el WebGrid para ASP .NET per-
Con más de 15 nuevas funciones 2003; nuevo componente PDF mite controlar sobre el lado clien-
incluyendo nuevos métodos para el para .NET; la visión previa para te los agrupamientos para colum-
soporte del portapapeles, propieda- .NET ahora soporta hiperenlaces nas, y mucho más.
des para personalizar imágenes y y anclajes; el Spell para .NET
mucho más. incluye soporte para chequeo de Para más información visite
• Nuevas funciones en los productos correcciones personalizado y dic- www.danyshop.com o contacte
.NET y ASP .NET: Los menús y cionarios personalizados; el con [email protected]
noticias.noticias.noticias.noticias
dnm.biblioteca.net
<< dnm.biblioteca.net
Desde este primer número vamos a formar una biblioteca con los libros .NET que más nos gustan.
No es una sección de evaluación de libros al uso, no vamos a criticar los libros que no nos gustan,
ni tienen porqué estar los más nuevos. Queremos ir agrupando los libros que recomendamos de
manera que cada libro que se publica en esta sección tendrá la categoría de libro recomendado por
dotNetManía. En este primer número hemos querido recomendar un par de libros de colaborado-
res de esta revista,por lo que quizás no hayamos sido muy imparciales,pero como también nos gus-
tan, ¡qué mejor que empezar nuestra biblioteca virtual con ellos!
<<
cirnos en la programación de aplicaciones web zaje muy completo.
con ASP.NET. Se trata de un libro que en sín-
tesis general, nos introduce a la historia des- Jorge Serrano es una de las personas con más
de ASP hasta ASP.NET, explicándonos las par- presencia en la comunidad de desarrolla-
tes generales de los lenguajes C#, Visual Basic dores de España y webmaster de una de
.NET y JScript.NET de .NET, y enseñándo- las mejores páginas de Visual Basic en cas-
nos a usar Visual Studio .NET como herra- tellano, portalVB ().
capítulos para explicar los conceptos básicos Guillermo ‘guille’ Som es un auténtico pio-
de la sintaxis de VB .NET, desde cómo crear nero de la publicación de contenidos téc-
una variable hasta cómo hacer un bucle For. nicos en Internet en España. Acaba de abrir
Para los que ya tienen experiencia en la pro- su nuevo local en htpp://www.elguille,info
56
dnm.comunidades
<< dnm.comunidad.net
Golem Project
(… weblog en marcha)
<< Golem Project nace a partir de una iniciativa conjun- en castellano, el de INETA, y el de muchos
ta de Microsoft y el Creative Computer Group MVPs y destacados profesionales de las tecno-
(CCG) del laboratorio de Redes de Neuronas logías Microsoft. Gracias a sus weblogs podrán
Artificiales y Sistemas Adaptativos (RNASA) de compartir con nosotros información acerca de
la Universidade da Coruña, con el objetivo de sus proyectos, sus inquietudes, sus opiniones, etc.
acercar la tecnología .Net y los Servicios Web a Golem Project está en fase de construcción,
toda la comunidad universitaria, proporcionan- pero ya es posible colaborar con el equipo de
do un foro en el que compartir y divulgar cono- desarrollo a través del correo electrónico
cimientos y dudas acerca de éstos y otros temas. ([email protected]) o del formulario de colabora-
Golem Project es un entorno virtual en el que ción de la página Web (http://www.golem-
los estudiantes podrán participar en un juego y project.com), y ya se puede comenzar a cons-
aprender e intercambiar conocimientos a un mis- truir Servicios Web para jugar. Cualquier suge-
mo tiempo. Apoyándose en el paradigma de la rencia, comentario, duda o aportación será bien-
Sociedad Híbrida (http://www.hybridsociety.net) venida y tenida en cuenta.
y en las tecnologías Microsoft .Net para la creación
de Servicios Web, este proyecto pretende crear un
espacio común en el que todos los participantes
podrán exponer sus creaciones software y probar, Juan Jesús Romero Cardalda, es profesor en el
evaluar y criticar las de los demás. Departamento de Tecnologías de la Información y
Dentro de las iniciativas que forman parte de las Comunicaciones de la Universidade da Coruña
Golem Project se ha puesto ya en marcha el sitio ([email protected])
http://weblogs.golemproject.com, que aglu- Iván González Vilaboa, es investigador en el RNA-
<<dotNetManía
tina un conjunto de weblogs que crece día a día SA Lab // GIB del Departamento de Tecnologías
y entre los que se encuentran algunos tan inte- de la Información y las Comunicaciones de la
resantes como el weblog del equipo de MSDN Universidade da Coruña ([email protected])
57
dnm.desvan
<< dnm.desvan
Por Marino Posadas
noticias.noticias.noticias.noticias
Importantes avances hacia la computación cuántica
Científicos de la Universidad de Harvard, han conseguido dar un importante paso hacia la computación
cuántica al conseguir "parar" un pulso luminoso sin pérdida apreciable de energía y hacer que reanudara
su trayectoria un instante después, lo que podría tener importantes consecuencias en el desarrollo de orde-
nadores basados en la Mecánica Cuántica. Para más información, ver el artículo de Rick Callahan, Scientists
freeze pulse of light, for an instant (http://www.signonsandiego.com/news/science/20031209-2349-frozen-
light.html). Este logro viene a completar pasos anteriores como el publicado en la revista Nature (Solid stops
light) (http://www.nature.com/nsu/020107/020107-2.html), en el que se conseguía la detención utilizando
cristales especiales.
El autor de Tetris, trabaja en el división Microsoft, preparado para sacar el Service Pack 2 de
de juegos de Microsoft. Alexey Pajitnov, Windows XP
padre del popular juego Tetris, trabaja Para el momento de la publicación de éste primer número de
ahora en la Microsoft Games Division. dotNetManía, probablemente Microsoft ya tenga disponible
Según parece está trabajando en la actua- la beta del siguiente Pack de Windows XP, con mejoras en la
lidad en su segunda versión de la Caja de seguridad y multimedia, principalmente. Posiblemente en mayo
Pandora. ya estará disponible la versión definitiva y se dice que ya inclui-
rá algunas caracteríaticas de Longhorn. Para más información,
véase el sitio: http://news.com.com/2100-1016-5128984.html
Bitácoras (WebLogs)
sitios y recursos Don Box (coautor de SOAP y XML-Schemas):
http://www.gotdotnet.com/team/dbox
Drew Marsh: http://weblogs.asp.net/dmarsh
Documentación oficial sobre Longhorn: Brian Jepson: http://www.jepstone.net/radio/2002/10/10.html
http://microsoft.com/Longhorn Clemens Vasters (sobre Indigo):
Herramientas .NET de todo tipo: http://staff.newtelligence.net/clemensv
<<dotNetManía
58
Seminario
Lanzamiento
Delphi 8
Madrid - 5 de Febrero
Auditorio Winterthur.
c/ Marqués de Villamagna, 8