CESAR DE LA TOR... 的个人资料Blog de CESAR DE LA TORR...照片日志列表更多 工具 帮助

日志


5月13日

Cambio de BLOG a MSDN-BLOGS !!!

A partir de ahora, cambio de BLOG a un nuevo blog que he creado en MSDN (http://blogs.msdn.com).
Tiene muchas mas posibilidades que Windows Live Spaces y además MSDN lógicamente es un área mas localizada en el desarrollo y vamos, me mola mucho mas tener ahí el BLOG!!! ;-)
El BLOG es:
 
En este nuevo BLOG, además de postear sobre tecnologías con las que actualmente he trabajado (.NET, WCF, WF, CardSpace, SharePoint, etc.), me estoy metiendo de lleno en DYNAMICS (CRM, NAV y AX) como plataforma de desarrollo de Aplicaciones-Verticales así como integración con plataforma .NET. Vamos, hacer uso de DYNAMICS (CRM, NAV y AX) como componentes denegocio base para desarrollar por encima verticales especializados o integrar DYNAMICS con aplicaciones relacionadas (Apps .NET, SharePoint, etc.).
 
Otra cosa nueva es que voy a postear en INGLES. Mi ámbito de trabajo va a ser también WESTERN-EUROPE, no solamente España, así que prefiero hacerlo en inglés. :-)
 
Así que, este BLOG lo dejo simplemente ya como histórico. :-)
 
 
 
 

Una nueva etapa en mi vida profesional: MICROSOFT

A partir del día 7 de Mayo, he dejado de trabajar en RENACIMIENTO y he empezado a trabajar Full-Time en MICROSOFT, en la división llamada DPE (División de Desarrolladores y Plataforma). En esta división los objetivos son mayoritariamente el difundir la tecnología entre los diferentes sectores, tanto de forma masiva (Eventos) como de forma directa (uno a uno con clientes). Así que es eso precisamente lo que voy a estar haciendo, difundir, convencer, aconsejar y orientar sobre tecnología Microsoft. Algo que me encanta. :-)
 
DPE es una división que conozco desde hace mas de 7 años porque he colaborado con ellos durante ese tiempo (desde 1999)  haciendo gran cantidad de eventos de Microsoft, tipo Developer-Days, Talleres-MSDN, Foro de Desarrolladores, Lanzamientos de Visual-Studio y .NET, etc.
Es una nueva etapa en mi vida profesional que espero esté llena de grandes retos (eso seguro) y también grandes satisfacciones. Desde luego que tiene una pinta estupenda!! :-)
 
3月23日

Ponencia en Microsoft Developer Days 2007 sobre TEAM SYSTEM

Otro año más colaboro como ponente en el Developer Day 2007!!. Será el próximo Jueves, 29 de Marzo, en el Kinépolis (Madrid):
 
En esta ocasión voy a hacer la ponencia 'Metodologías con Visual Studio Team System'.
Haremos una introducción a metodologías como CMMI y metodologías ágiles (MSF-Agile, SCRUM, XP, etc.) y como aplicar conceptos de trabajo en equipo de dichas metodologías y marcos de trabajo mediante TEAM SYSTEM y TEAM FOUNDATION SERVER. :-)
 
3月20日

El MVP-Summit-2007 es ya historia!!

Pues estuvo muy bien y nos lo pasamos también muy bien, que es algo importante. ;-)
Asistí sobre todo a las sesiones de WCF y Biztalk-2006. Podré en posts específicos info puntual sobre cosas interesantes que ví.
Las sesiones del Grupo de producto de CONNECTED SYSTEMS fueron introducidas y coordinadas por Clemens Vasters y otra chica de Microsoft mucho mas guapa que él. ;-)
También estuvimos con Bill Gates en el Key-Note del summit. Estaba en 'su tónica', visionario sobre el futuro. :-)
3月9日

Vamos a empezar el MVP-Summit-2007 en Seattle/Redmond!!

No falta nada para que empecemos el MVP-Summit-2007!!
Parte es en Seattle y parte en Redmond.
Yo estaré en el hotel RENAISSANCE, en Seattle. A ver si adivináis por qué escogí ese hotel... ;-)
 
La agenda parece una pasada. Además este año permiten por web configurarte tu propia agenda seleccionando sesiones de los tracks parelelos. Los tracks mas interesantes de mi agenda son:
 
- Bill Gates Keynote
- Developer Division Roadmap
- Mashup (Part 1)
- Mashup (Part 2)
- Writing Stuff Down - Getting Ready for a Career in Modeling
- Attendee Party - Museum of Flight in Seattle. ;-)   
- Unifying Integration: Building Line of Business Adapters with WCF Deep Dive   
- Advanced Web Services with BizTalk R2: The BizTalk WCF Adapter In Depth
- Building Bridges: Enterprise Integration Solutions illustrated using the SAP WCF Adapter  - Writing Services using Workflow: The Workflow Services Model
- Real-time Business Analytics for your WCF and WF application: The BAM Interceptor   
- RFID In BizTalk: When the Forklift speaks to the Pallet and the Shopping Cart speaks to the Cashier's Register.
- Windows Server Product Group Dinner 
- Open Q&A with BizTalk and .Net framework Product Group (Connected Systems Division)   
- The Other Side Of The Standards World: EDI/AS2 Features of BizTalk Server 2006 R2   
- HTTP Programming, RSS/Atom Syndication and AJAX Integration for WCF
- CSD in Sky. The Cloud as part of the Framework 
  
Lógicamente hay muchos mas temas, yo me he seleccionado todo lo que es podido sobre WCF que es lo que mas me gusta.
Al margen están las fiestas y cenas, que no pongo aquí. ;-)
 
Pues nada, el Domingo 11-Marzo estaré ya por allí. Escribiré algunos posts por aquí sobre cosas interesantes que vea... :-)
 

Fiesta MVPs en Seattle 'powered by Palermo' :-)

Cool!. Buena forma de empezar el MVP-Summit-2007 en Seattle, con un fiestón de la leche promovido por Jeffrey Palermo [MVP - C#].
Me lo ha comentado Luis Fraile, y he tardado en apuntarme '0,'.
Parece una pasada, ¡¡se han apuntado ya mas de 200 personas!!
Aquí está el anuncio y 'registro' para la fiesta. Hay que ser MVP y llevar una tarjeta de empresa:
 
Se lo ha montado bien, tiene 11 empresas sponsor de la fiesta. ;-)
 
Pues nada, empezaremos el Summit con una buena fiesta. :-)
3月7日

Solución a Error en creación de Sitios personales mySite en MOSS 2007

En las instalaciones de MOSS 2007 de tipo WebFarm o incluso en las instalaciones en un único servidor pero donde se especifica que el servidor de SQL Server es uno específico, SQL Server versión Standard o Enterprise (No instalación básica con SQL Express, etc.), resulta que parece que la instalación/configuración de las colecciones de sitios personales no la hace MOSS-2007 bien, o por lo menos, no la hace por defecto.

Da el error:

"No se puede crear el sitio personal porque no se ha creado la ruta de acceso administrada "personal" para este sitio. Póngase en contacto con el administrador del sitio para obtener más información."

o también el error (lo pongo en inglés, porque es donde lo he reproducido):

"Your personal site cannot be created because Self-Service Site Creation is not enabled. Contact your site administrator for more information".

Lo que hay que hacer para solucionar el problema es:

1.- Habilitar la 'Administración de Sitios sin intervención del Administrador' para la 'Aplicación Web' SharePoint-MySite-puerto (en inglés se le llama Virtual-Server). Esto se realiza lógicamente desde la Administración Central de MOSS-2007. ¡¡Asegurarse que se ha seleccionado en la combo la 'Aplicación Web' SharePoint-MySite-puerto, no la 'Aplicación Web' raiz u otra aplicación-web...!!

2.- Verificar/Añadir en 'Definir rutas de acceso administradas' el path 'personal' como 'Inclusión de comodines'.

Con esto, debería de arreglarse el problema y poder crearse ya los sitios personales.  :-)

 

 

 

3月6日

¡¡Por fín tenemos WCF en .NET Compact Framework (v.3.5)!!

Pues eso, ¡¡WCF en NETCF 3.5!!, algo muy esperado por todos... aunque todavía en BETA (.NET Compact Framework 3.5), pero algo es algo!! ;-)
Mirad este link, no tiene desperdicio y con una foto del equipo de desarrollo de NETCF 3.5 (.NET Compact Framework 3.5)!!
Parecen los marines!! ;-)
 
Además de poder consumir servicios WCF desde NETCF 3.5, también están implementando ciertas características de LINQ compact framework. :-)

Otras novedades de WCF en .NET 3.5 (VS.Orcas)

¡¡Mas novedades de WCF(Indigo) en .NET 3.5 (VS.ORCAS)!!
 
(*) Soporte REST en WCF:
En .NET 3.5 podemos desarrollar servicios WCF en 'estilo REST' (Representational State Transfer). Para más información sobre REST:
http://uk.builder.com/0,39026540,39257177,00.htm
http://www.xfront.com/REST-Web-Services.html
http://www-128.ibm.com/developerworks/xml/library/ws-restvsoap/
http://webservices.sys-con.com/read/79282.htm

(*) Mas estándares WS-*, sobre todo transaccionales.
Implementación de las últimas especificaciones OASIS de WS-AtomicTransaction 1.1Web Services Coordination (WS-Coordination) 1.1, WS-ReliableMessaging 1.1WS-SecureConversation.
 
(*) Soporte RSS y API de sindicación ATOM
Los servicios WCF pueden ahora de forma sencilla exponer datos sindicados que sean consumidos por clientes RSS ó ATOM.

Servicios WCF 'AJAX enabled' en .NET 3.5

En la Beta de .NET 3.5 (CTP de Marzo con VS.ORCAS) podemos implementar servicios WCF que puedan ser consumidos/accedidos desde AJAX!!. Esto es una muy buena noticia, porque hasta ahora lo normal era consumir con AJAX Servicios-Web-XML básicos (Basic-Profile, ASMX, etc.).
 

Integración nativa entre WF y WCF(Indigo) en .NET 3.5

Hasta ahora, en .NET 3.0 al desarrollar workflows de WF orquestando servicios WCF(INDIGO) o al publicar  un Workflow de WF con un Servicio de WCF(INDIGO) tenemos que hacerlo 'a pelo', es decir, no existen actividades de WF específicas/nativas para Servicios WCF para entrada/salida. Sin embargo, si existen en WF de .NET 3.0 actividades específicas para gestionar Servicios-Web-XML básicos (basic-Profile, ASMX, etc.).
Ahora, en la CTP de Marzo de Visual Studio Orcas (recordad que es Beta todavía), y en el nuevo release de .NET, es decir, .NET Framework 3.5., tenemos ya actividades de WF específicas para gestionar Servicios-WCF y también hay clases en el modelo de objetos para simplificar la integración/publicación entre WCF y WF. Basicamente se reduce la complejidad de dicha integración entre WCF y WF. Por ejemplo, antes era relativamente complicado publicar un Workflow con estados en un servicio WCF también con estados y sesiones, utilizando por ejemplo un Binding DUPLEX, etc.

Era realmente una falta que tenia WF en .NET 3.0 el hecho de que a pesar de que tanto WCF como WF forman parte de .NET 3.0, sin embargo, WF no disponía de una integración directa con WCF. Es decir, en WF no teníamos por ejemplo ‘Actividades nativas’ para llamar a Servicios WCF  y sin embargo si las había para llamar a Servicios-Web-XML básicos (tipo .ASMX).
Esto sin embargo era claramente algo temporal y ya lo tenemos disponible en .NET 3.5. Ya tenemos unas ‘Actividades’ nuevas para consumir servicios WCF. Se llaman ‘SendActivity’ y ‘ReceiveActivity’ y se usan por lo tanto dentro de un workflow para comunicarnos con y desde el workflow con un servicio WCF.
Desde el punto de vista contrario (un servicio WCF haciendo hosting y publicando a un workflow), también hay un nuevo tipo de ‘Host de servicio WCF’ especializado en workflows. Hay unas nuevas clases llamadas ‘’WorkflowServiceHost” y “WorkflowServiceHostFactory” que complementan a la clase existente “ServiceHost”. Desde estas clases se puede acceder al ‘WorkflowRuntime’ y añaden automáticamente un ‘WorkflowRuntimeBehavior’ a los endpoints. Este ‘behavior’ es precisamente el que hace hosting del runtime del workflow.
Hay también dos nuevos ‘bindings’ en WCF (NetTcpContextBinding y WsHttpContextBinding) los cuales derivan de NetTcpBinding y WsHttpBinding, respectivamente. Estas clases proporcionan el concepto de ‘contexto’ a los bindings existentes. Tenemos  dos propiedades con las que se puede trabajar para acceder a dichos contextos, ContextExchangeMechanism y ContextProtectionLevel.
2月7日

Autenticación Membership en Servicios WCF (Windows Communication Foundation)

Autenticación en WCF con token de seguridad ASP.NET Membership
Aunque en la configuración por defecto de los bindings de WCF se utiliza autenticación Windows/AD, otra opción para muchos escenarios es que la aplicación cliente WCF se identifique contra el servicio WCF con una pareja de usuario-password que deba autenticarse contra un repositorio Membership.
Con .NET 2.0 y ASP.NET 2.0 apareció como novedad una nueva tecnología de autenticación llamada Membership (no confundir  con el antiguo Membership de Microsoft Site Server 3.0 allá por 1999 ;-), que era una implementación Microsoft de directorio LDAP… no tiene nada que ver…).
El Membership de ASP.NET 2.0 no consiste en un único y específico repositorio de usuarios para realizar autenticación. No, se trata más bien de una capa intermedia para realizar autenticaciones contra cualquier ‘proveedor Membership’ que dispongamos nosotros ‘por debajo’.  Podemos desarrollar de forma muy sencilla un proveedor ‘custom’ de Membership que autentique contra cualquier fuente de datos de repositorio de usuarios. Se puede hacer uso del proveedor ejemplo SqlMembership o bien desarrollar un proveedor contra el esquema y SGBD propio que queramos, o incluso contra otro repositorio que no sea un SGBD sino un directorio LDAP, etc. Lo interesante de Membership es que nos proporciona un interfaz estándar de autenticación (tanto programático por APIs como con Web-Controls visuales), siempre basado en tokens ‘usuario-password’, pero contra cualquier repositorio que configuremos.
En definitiva, por la razón que sea (aplicación existente basada en Membership, no disponibilidad de Directorio Activo, etc.), podemos disponer de un repositorio de usuarios expuesto a autenticación mediante Membership y utilizarlo para ¡¡basar la autenticación de nuestros servicios WCF en Membership!!.
Para integrar Membership en un servicio WCF, el usuario debe de alguna forma proporcionar las credenciales que requiere Membership (siempre usuario y password). Para transferir esos datos al servicio WCF, debemos por lo tanto hacer uso de un binding que soporte credenciales de tipo usuario/password, como wsHttpbinding y especificar explícitamente que el tipo de credenciales es UserName. En el servicio, la seguridad de WCF autenticará al usuario basándose en dicha pareja de datos (usuario/password) contra el proveedor Membership que hayamos configurado. Posteriormente, incluso podríamos hacer uso de autorización de acceso a recursos (componentes de negocio, etc.) basada en Roles-Providers de ASP.NET (Roles con usuarios Membership)…

Configuración de Servicio WCF para soportar autenticación Membership

Una vez tenemos configurado el proveedor Membership en el .config (no lo pongo porque es algo específico de Membership de ASP.NET 2.0, no exclusivo de WCF), tenemos que configurar una sección de tipo ‘Behavior de WCF’.

<system.serviceModel>

……………………………………………………  

<behaviors>

 <serviceBehaviors>                

  <behavior name="MiSvcMembershipSecBehavior">

    <!-- Configuramos la autenticación para que use MEMBERSHIP-PROVIDER -->

    <userNameAuthentication userNamePasswordValidationMode ="MembershipProvider" membershipProviderName="SqlMembershipProvider"/>

    <!—Configuramos el certificado servidor X.509 del Servicio -->

    <serviceCertificate storeLocation ="CurrentUser"

                        storeName ="My"

                        x509FindType ="FindBySubjectName"

                        findValue ="localhost" />                             

    </serviceCredentials>

    <!--Para debugging poner  includeExceptionDetailInFaults a ‘true’-->

    <serviceDebug includeExceptionDetailInFaults="true" />

    <serviceMetadata httpGetEnabled="true"/>

  </behavior>                       

 </serviceBehaviors>                                                            

</behaviors>

……………………………………………………  

</system.serviceModel>

En esta sección definimos un behavior de servicio (comportamiento de servicio) donde especificamos que la autenticación se basará en credenciales de tipo usuario-password y en concreto en un proveedor Membership  determinado (en este caso ‘SqlMembershipProvider’).
Además de eso, también se requiere un certificado servidor X.509 exclusivamente para el servidor. Este certificado tiene un uso similar al que se le da en las comunicaciones seguras SSL, es decir, sirve para identificar al servidor y también sirve como raíz origen de las claves seguras necesitadas para realizar encriptación (cifrado) de la comunicación, que será automático en caso de utilizar el binding wsHttpBinding, como es el caso del ejemplo.
Una vez tenemos definido dicho ‘Service-Behavior’ (que podemos utilizar con cualquier definición de servicio), lógicamente tenemos que tener el XML de definición de nuestro servicio que queremos ‘enlazar’ con este behavior. Como por ejemplo, la definición de servicio siguiente (en este caso hago hosting en una aplicación de consola y basado en protocolo HTTP en el puerto 8000, todo gracias a Http.sys):

<system.serviceModel>

……………………………………………………

 <services>

  <service name="MiServicioLib.MiServicio"

           behaviorConfiguration="MiSvcMembershipSecBehavior" >

    <host>

     <baseAddresses>

      <add baseAddress="http://localhost:8000/MiServicio/" />

     </baseAddresses>

    </host>  

    <endpoint name="ConfigMiServicioWsHttpMembershipSec"

              address=" http://localhost:8000/MiServicio/Membership"

              binding="wsHttpBinding"

              bindingConfiguration="MiBindingConf"                                   contract="MiServicioLib.IMiContrato" />

   </service>

 </services>

 <bindings>

   <wsHttpBinding>                     

     <binding name="MiBindingConf">

       <security mode ="Message">

          <message clientCredentialType ="UserName"/>

       </security>

     </binding>                        

   </wsHttpBinding>              

                   

 </bindings>

……………………………………………………

</system.serviceModel>

 El enlace del servicio con Membership está precisamente al principio donde especificamos el  Behavior llamado ‘behaviorConfiguration="MiSvcMembershipSecBehavior"’.
Además también es necesario especificar de forma explícita que el tipo de credenciales cliente a ser autenticadas por mi servicio son del tipo ‘UserName’ (puesto que Membership es un sub-tipo de autenticación basada en credenciales usuario-password).
Con esto ya tendríamos configurado nuestro servicio para utilizar seguridad Membership. Solamente nos faltarían un par de cosas, como configurar nuestra aplicación cliente con unos bindings que también soporten Membership (estos pueden ser generados automáticamente por la utilidad  svcutil.exe o por el propio Visual Studio cuando hacemos un ‘Add Service Reference…’ que realmente está utilizando svcutil.exe).
Por último, tenemos que instanciar la clase proxy de nuestro servicio desde la aplicación cliente y proporcionarle, lógicamente, las credenciales usuario/password, como hacemos en el código C# siguiente:

//Creamos el objeto proxy

MiContratoClient proxy = new  MiContratoClient();

//PROPORCIONAMOS USUARIO DE MEMBERSHIP

proxy.ClientCredentials.UserName.UserName = “ctorre”; //Usuario Membership

proxy.ClientCredentials.UserName.Password = “miclave”;  //Password           

string resultado;

resultado = proxy.MiMetodoObtenerInfo();

proxy.Close();

¡Pues con esto ya estaría todo!. Autenticar contra Membership en servicios WCF es muy útil por ejemplo para escenarios en Internet. :-)
 

1月23日

Solución a problema al intentar borrar plantillas de InfoPath de los Form Templates globales de MOSS-2007

En la instalación de MOSS-2007 (versión RTM) con la que estoy trabajando con Infopath Forms Server 2007, registrando plantillas globales, etc. tenía un problema: Cuando intentaba borrar/eliminar una plantilla de Infopath de los Form Templates globales, me daba el siguiente error:
 
"The timer job for the operation has been created. However, it cannot be run because
the administrative service for this server is not enabled. To run the timer job, use
the stsadm.exe command line utility (stsadm.exe -o execadmsvcjobs)."
 
Además se quedaba en estado 'Deleting' de forma indefinida...
 
Según el mensaje de error, ejecutando stsadm.exe -o execadmsvcjobs haría que se efectuase el borrado, pues son jobs pendientes. Sin embargo, yo quería que se borraran directamente sin tener que ejecutarlo con stsadm.exe.
 
SOLUCION:
Por alguna razón el servicio 'Windows SharePoint Services Administration' estaba parado y además configurado como manual. Arrancando este servicio ya funciona OK el borrado. (aunque primero los borré con stsadm.exe).
1月22日

Autenticación contra ADAM en MOSS-2007 y WSS 3.0

He estado intentando implementar Autenticación contra ADAM (Active Directory Application Mode) desde WSS 3.0, pero hay algo de confusión con este tema...: esta autenticación (contra ADAM) puesto que ADAM es al fin y al cabo un directorio LDAP, en SharePoint se basa en un proveedor LDAP de Membership que viene proporcionado solamente con MOSS-2007, por lo que con WSS no se puede configurar directamente.
 
WSS 3.0 permite diferentes tipos de autenticación basándose también en proveedores Membership, pero esos proveedores los tienes que desarrollar tú mismo o ser proporcionados por una tercera parte. Microsoft proporciona el proveedor LDAP solamente con MOSS-2007 (contra SQL Server no hay problema puesto que el proveedor Membership para SQL Server se proporciona en el propio ASP.NET 2.0 del Framewrok 2.0).
1月17日

Microsoft Sandcastle: Generar ficheros de ayuda .CHM a partir de comentarios en código .NET 2.0

El poder generar ficheros de ayuda .CHM a partir de comentarios en código .NET no es algo nuevo, como tal, ya existía NDoc. Lo usamos muchos en .NET 1.1 con C#, etc...

La novedad ahora es que el propio MICROSOFT ha desarrollado un producto similar a NDoc para .NET 2.0, llamado Sandcastle (por ahora en BETA. Lo último es la CTP de Diciembre de 2006).
 
 
También hay un BLOG/Wiki específico para Sandcastle:
http://blogs.msdn.com/sandcastle/
1月15日

Novedades de Longhorn Server

SESION WINDOWS LONGHORN SERVER (del MCT-SUMMIT-2007) - Por Andy Malone
Algunos puntos interesantes de esta sesión son:
- (*). Va a haber una versión especial de Windows Longhorn Server llamada "SERVER CORE", que se instala SIN interfaz de usuario gráfico. Vamos, símplemente arranca con una 'ventana' de LINEA DE COMANDOS (al estilo de los antiguos UNIX, pero un CMD de Windows), por lo que TODO hay que hacerlo por línea de comandos, mediante las utilidades "NET", etc. Por ejemplo, cambiar una password, especificar IP de la tarjeta, todo, hay que hacerlo desde 'línea de comandos'.
Andy Malone dijo que en su Blog habría walkthrough de la instalación básica de un SERVER CORE por línea de comandos, pero no lo he visto...:
 
- (*). Soporte de ADFS (Active Directory Federation Services). esto es muy importante para tokens de autenticación SAML, no solamente para 'federar' diferentes directorios AD de diferentes forest, sino incluso para federar autenticación AD con otras plataformas NO Microsoft. Tiene completamente que ver con los estándares WS-* de servicios web: WS-Security, SAML, WS-FederationServices, etc.
 
- (*). Sobre los DCs, al hacer un DCPROMO, por defecto los DCs serán también GC. También se permite seleccionar el Role (DNS, GC, RODC, etc.) y seleccionar el SITE.
 
- (*). Nuevo tipo de DC: RODC (Read Only Domain Controller), vamos, parecido al antiguo BDC de NT 4.0. La replicación es en un solo sentido, desde los DCs hacia los RODC. Es bueno por temas de seguridad para oficinas de sucursales, etc. P.e. las passwords no se almacenan en el AD de los RODCs, etc.
 
- (*). Se puede hacer un re-start de Active Directory sin hacer un re-boot del servidor.
 
- (*). ADAM (Active Directory Application Mode) pasa a llamarse "Active Directory Lightweight Directory Services" (ADLDS).
  
Bastantes mas cosas pero menos 'remarcables', como:
 
MMC 3.0, BIT LOCKER, Nuevo boot via UEFI 2.0 (igual que en Windows Vista, adiós a boot.ini, NTLoader, etc.), NAP (Network Access Protection), ForeFront Security (el antiguo Antigen), IPv6 con TEREDO, y grandes cambios en IIS 7.0 (esto último da para muchos postings.. ;-))
 
 
1月10日

Estoy en el evento Microsoft MCT-Summit-2007 en Suiza, Zurich

Acabo de llegar hoy, estaré desde hoy Miercoles 10 de Enero 2007 hasta el viernes 12.
La ciudad de Zurich parece interesante, ya veremos que podemos ver en estos tres días porque la agenda es muy apretada, desde las 8:00 aM que empiezan las sesiones hasta por la noche todo seguido, en el hotel SWISSOTEL (http://zurich.swissotel.com/), que no está precisamente céntrico..., pero bueno, está bastante bien y por lo menos es un barrio con muchas cosas, no está perdido en el campo.
Aquí está la página con la situación y un enlace para verlo en GOOGLE-EARTH. ;-)
 
Me he encontrado en el avión del viaje a Fernando Guerrero y Marino Posadas de SOLID QUALITY MENTORING, que vienen a este mismo evento. Creo que de toda España vienen en total 8 MCTs a este evento. 
 
Mañana actualizaré cosillas de las sesiones evento y de las escapadas por la noche por Zurich... ;-)
...
1:05 AM - Bueno, por ahora las cervezas con colegas españoles por el 'down-town' de Zurich, muy bien... ;-)
...
Bien, pues las sesiones técnicas del evento..., la verdad que estuvieron un poco light. Es cierto que es dificil definir un contenido correcto para la audiencia de MCTs que es muy dispar, pero por ejemplo de desarrollo, no se habló nada de .NET 3.0. Básicamente las sesiones eran todas de:
- SharePoint V3 y MOSS-2007
- Exchange 2007
- Windows Vista
- Longhorn Server
Lógicamente, por el tipo de tecnología que mas trabajo, fuí a las sesiones de SharePoint v3 y MOSS-2007 y a las de Longhorn Server. Las sesiones fueron todas bastante sencillas, pero bueno, tampoco estuvieron mal. :-)
Escribiré un par de postings con algunas cosillas que apunté en dichas sesiones.
1月9日

Cómo instalar automáticamente PNRP e IPv6 en Windows XP SP2

Para la mayoría de aplicaciones P2P de WCF, puesto que requieren del protocolo PNRP, es bueno poder instalar ese protocolo (al igual que IPv6) de alguna forma automatizada en las máquinas clientes. Esto se puede hacer por 'línea de comando':
 
1. Guardar en un fichero local de texto, p.e. HabilitarPnrpSobreXPSP2.txt. en %SystemDrive% la siguiente configuración:
[Components]
Netoc=on
[NetOptionalComponents]
P2P=1

2. Ejecutar el siguiente comando en 'línea de comandos para instalar IPv6 en la máquina (puesto que P2P requiere IPv6)
 
netsh int ipv6 install
 
3. Ejecutar el siguiente comando para instalar el Pack de red de P2P (PNRP), que ahora se llama 'Advanced Networking pack':
 
%systemroot%\system32\Sysocmgr.exe /i:%systemroot%\inf\sysoc.inf /u:%SystemDrive%\HabilitarPnrpSobreXPSP2.txt /q /w
 
 
 
 

Servicios P2P de WCF: Qué son, Software y Plataforma necesaria.

En WCF hay una 'binding' especial para desarrollar servicios P2P (Peer To Peer).
Realmente no es solo el binding sino la forma de desarrollar el servicio lo que cambia. Los servicios P2P (peer-to-peer) NO siguen el patrón típico de Servicio/Servidor y Clientes atacando, como son los Servicios-Web básicos (ASMX) o los Servicios WCF normales. Los servicios P2P son servicios en los que todos los clientes son al mismo tiempo los servicios y viceversa.
 
Para que quede claro, el mejor ejemplo de un servicio P2P es eMule (que no está hecho con WCF, por ahora... ;-) ), donde todos los clientes hablan unos con otros directamente y NO pasa la comunicación por un servidor. Esta es la principal diferencia con los servicios DUPLEX de WCF con suscripciones donde puede haber muchos clientes pero las comunicaciones están centralizadas en un servicio del servidor, los clientes no se comunican directamente, como SI pasa en cambio con los servicios P2P.
Otra cosa es que exista algún tipo de servidor para poner 'en contacto' a los diferentes clientes P2P (red de clientes), pero las comunciaciones/datos en P2P van directamente desde un cliente a otro.
 
Centrándonos en WCF, el P2P de WCF está basado a su vez en un protocolo de mas bajo nivel específico para comunicaciones P2P. Este protocolo es PNRP (Peer Name Resolution Protocol), que actualmente en plataforma Microsoft vamos por la versión PNRP v2 (en Windows VISTA), y en XP-SP2 hay que bajarlo e instalar esta versión V2 a parte.
 
El software y plataforma necesaria para un servicio P2P de WCF es:
 
- SISTEMA OPERATIVO: (Windows Vista ó Windows XP SP2).
- IPv6 (Disponbile en Windows Vista y en Windows XP, pero hay que instalarlo específicamente).
- Protocolo PNRP v2 (Disponible en Windows Vista; a instalar en XP-SP2). Para XP-SP2, bajarlo de esta URL:
Windows XP-SP2 tiene la versión PNRP v1, pero es recomendable la versión 2 de PNRP porque esta es compatible con otros clientes P2P de Windows Vista.
 
- .NET Framework 3.0 y 2.0
 
En los equipos de desarrollo, a parte de lo anterior, VS.2005, add-ins de WCF para VS.2005, etc.
 
 
1月8日

Ponencias en eventos de gira Microsoft L.O.V.E. (Lanzamiento de Office Vista Exchange)

Estoy participando como ponente en el evento de Microsoft L.O.V.E. (Lanzamiento de Office Vista Exchange) con una sesión de WCF y WF.
El eslogan es 'Prepárate para un nuevo día'.
Esta es la URL de información:
 
Lo hemos hecho ya en Madrid, Barcelona y Valencia. El 16 de Enero-2007, lo haré también en Sevilla.
 
Mi ponencia es la que trata sobre como desarrollar la capa de componentes de negocio con WCF y WF. Está siendo un evento interesante donde tratamos muchos temas nuevos de .NET 3.0. También hablamos de CardSpace y de (WPF) Windows Presentation Foundation.
 
En Barcelona hice la sesión de MOSS-2007 (Office SharePoint Server 2007) con el cual tengo cierta experiencia también trabajando con la BETA durante el 2006.