December 2007 - Artículos

SharePoint, Microsoft, y el extraño caso de la KB928365

"Me encantan que los planes salgan bien". Esta frase del Equipo A, concretamente de John "Hannibal" Smith, la decía siempre al acabar cada capítulo, pero no al acabar cada capítulo de cualquier manera, sino al acabar el capítulo como lo había planeado, es decir, bien. Esta misma frase la he empleado muchas veces en mis proyectos Software en plan grito de guerra cuando acababa una tarea, una fase del proyecto o el proyecto en sí.

Sería bonito que siempre pudiéramos usarla. Significaría algo bueno sin duda.

Sin embargo, hay otra frase de significado completamente diferente que también la uso cuando las cosas no salen tan bien. "La cagaste burlancaster", frase de aquel mítico álbum de los Hombres G y que se les podría soltar en alguna ocasión a la jeta de la gente de Microsoft, y en particular a la gente de SharePoint.

No dudo de que SharePoint sea un gran producto, de hecho lo amo, pero tampoco dudo de que a veces, uno piensa si detrás del equipo de SharePoint hay un gran grupo tipo Equipo A, o un grupo en el plan más cómico como el álbum de los Hombres G.

Y dado que es muy fácil hablar por hablar y no dar ninguna pista, aquí va la mía y el porqué digo todo esto.

¿Alguien conoce la KB928365?. ¿Alguien ha oído hablar de ella?. Si tu respuesta es no, a partir de hoy la recordarás para siempre.

Sería el mes de Julio, concretamente el 10 de Julio, cuando los chicos de Microsoft decidieron publicar un importante parche de seguridad, ese tipo de parches que se instalan en los sistemas operativos con poco esfuerzo y que son tan importantes (de seguridad) que son necesarios de la muerte.

El caso es que el parche de seguridad de la KB928365 corresponde con el denominado como Security Update for Microsoft .NET Framework 2.0.

Con ese nombre, ¿quién duda en instalárselo?. Indudablemente nadie.

Así que nada, a instalarlo en ese precioso sistema operativo Windows 2003 Server con mi servidor SharePoint en él, reiniciar el sistema para asegurarse de que todo está perfectamente y a seguir con la vida que es muy bonita.

Hasta aquí todo fenomenal: "Me encanta que los planes salgan bien".

Todo fenomenal hasta que pasado un tiempo, un día y de repente llama un usuario: "La cagaste burlancaster".

El usuario que me llama: "Jorge, el sistema no me deja añadir ninguna página al Wiki de la empresa". Miro, remiro, y en principio la única conclusión importante que saco es nada, es decir, un mensaje de error de los que te ponen los pelos como escarpias: "Error HTTP 403 Forbidden".

En este punto, uno piensa en alguna actualización última y poco más porque el servidor no tiene nada raro, ninguna instalación adicional, y además ha funcionado todo perfectamente porque ya me aseguré de que el Wiki y todo el SharePoint funcionara en su momento (acostumbro a hacer pruebas antes de publicar algo o abrirlo a los usuarios, y en SharePoint siempre uso la cuenta de administración y otra cuenta para chequear todas las posibilidades).

Mmmmm... no se, no entiendo nada... la única actualización importante del sistema ha sido la KB928365 que Microsoft ha propuesto como necesaria y lo cierto es que es la candidata a culpable, pero... ¿cómo va a publicar Microsoft un parche y que éste reviente otra cosa que antes funcionaba?. Sé que ha pasado más veces, pero eso era hace mil años, y últimamente no pasaba nada de esto, mejor dicho, me tengo que remontar muchos años atrás para recordar algo así...

Pues nada, me pongo a investigar más y más, y la conclusión es... ¡qué el KB928365 fastidia a SharePoint en la agregación de usuarios, en la creación de páginas como las del Wiki y alguna cosa más!. ¡Alucinante!.

En este punto, uno que no es de piedra maldice en muchas lenguas a mucha gente de Microsoft, porque yo también he hecho cagadas, pero como esta no recuerdo haberla hecho nunca.

Bien, una vez que ya sé dónde está el fallo, ahora me toca ponerme a buscar la solución en Internet, porque aunque en el KB928365 no dice nada del problema que os cuento, en Internet se encuentra uno con muchas quejas al respecto... "Mal de muchos consuelo de tontos".

Sin embargo, en Internet no encuentro ningún parche y sí muchas sugerencias. Que si no se qué con el archivo web.config que no sirve de nada, que si desinstalar el KB928365,... pero... ¿es una buena idea desinstalar un parche de seguridad para dejar que SharePoint funcione como antes?. Bajo mi punto de vista, eso es inaceptable.

Sin embargo, lo ideal es hacer un parche del parche, algo que vendría muy bien sin duda para resolver este problema.

No me queda otra, navegar y navegar, y así, me encuentro por fin con la solución:

Me froto las manos de la alegría y ansias por resolver el problema.

Todos los KB anteriores, nos llevan a esta dirección (linkid=6294451). Esto huele bien.

Ese enlace me lleva a un formulario para enviar una solicitud de hotfix.

No había visto nunca algo similar y lo primero que pienso es porqué no hacen público el hotfix, pero lejos de preguntarme por la existencia humana en el Universo, relleno el cuestionario y lo mando. Total, a estas alturas no tengo nada que perder. Un mensaje me indica que después de 8 horas recibiré un mensaje con el hotfix.

Espero las correspondientes 8 horas y recibo un mensaje genial, de los de archivar para siempre.

El mensaje empieza así:

Apreciado Cliente: Microsoft se encuentra interesado en escuchar y canalizar las consultas de nuestros clientes. Es por esto que nos complace contactarnos con usted en virtud de su solicitud.

Y continua:

En atención a ello le solicitamos haga llegar la consulta a Microsoft España, por medio telefónico se puede comunicar al 902-197-198. ...

Así que imaginaros la cara que se me ha quedado.

En este punto, uno piensa... ¿es tolerable este mareo o esta tomadura de pelo?.

¿Al final va a ser verdad eso de que hay que desintalar el ya famoso KB928365?.

Si logro avanzar en este tema os lo comentaré, pero me estoy cuestionando seriamente la posibilidad de desinstalar el famoso KB928365.

Cross Posted from Jorge Serrano - MVP Visual Developer - VB
Posted por Jorge Serrano con no comments
Archivado en:

LINQ, Visual Basic 2008 y DataSet

Visual Studio 2008

LINQ to DataSet (L2DataSet) 

Resumen general de lo publicado sobre LINQ hasta el momento:

En esta ocasión, vamos a desarrollar un ejemplo que es casi idéntico al ejemplo de LINQ y XML.

Lo que vamos a hacer, es trabajar a partir de un documento XML que vamos a cargar en en un DataSet para trabajar con el DataSet de forma directa.

Una vez más, vamos a elaborar un sencillo ejemplo del uso de LINQ con el objeto DataSet.

En primer lugar, trabajaremos con el documento XML de nombre Documento.xml y que contendrá la siguiente información:

<?xml version="1.0"?>
<
datosGenerales>
  <
datosPersona>
    <
nombre>Fernando</nombre>
    <
edad>18</edad>
  </
datosPersona>
  <
datosPersona>
    <
nombre>Rosa</nombre>
    <
edad>17</edad>
  </
datosPersona>
  <
datosPersona>
    <
nombre>Carlos</nombre>
    <
edad>21</edad>
  </
datosPersona>
</
datosGenerales>

Partiendo de este documento XML, vamos a aprovechar la base de los ejemplos anteriores de LINQ puestos al principio de esta entrada, y vamos a insertar un nuevo control Button en el formulario Windows de ejemplo.

Finalmente, vamos a escribir el siguiente código de aplicación:

Public Class MainForm

   Private Sub btnForthTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnForthTest.Click
      
'LINQ to DataSet
      Dim datos As New DataSet()
      
' Leemos los datos del documento XML y los
      ' volcamos al objeto de tipo DataSet
      datos.ReadXml("C:\Documento.xml")
      
' Declaramos una variable para obtener los datos del
      ' documento XML que cumplen la condiciSql programada
      Dim personasSeleccionadas = From seleccion In datos.Tables(0).AsEnumerable() Where seleccion.Field(Of String)("nombre"Like "??r*" Select seleccion.Field(Of String)("nombre")
      
' Declaramos una variable para obtener el resultado
      Dim resultadoObtenido As String = ""
      ' Recorremos los resultados de la condiciSql
      For Each elemento In personasSeleccionadas
         resultadoObtenido &= elemento & vbCrLf
      
Next
      ' Mostramos el resultado final
      MessageBox.Show(resultadoObtenido)
   
End Sub

End
 Class

Este ejemplo en ejecución, dará el mismo resultado que el ejemplo anterior de LINQ to XML, es decir, los valores Fernando y Carlos del documento XML.

Como podemos observar, el trabajo con DataSets es o puede ser directo y transparente a la hora de ejecutar sentencias con LINQ.

Espero que este breve ejemplo sirva de muestra para el trabajo con LINQ y DataSet que contiene datos.

Cross Posted from Jorge Serrano - MVP Visual Developer - VB

LINQ, Visual Basic 2008 y XML

LINQ to XML (L2XML) 

Continúo escribiendo ejemplos de breve introducción a LINQ, y en este caso le llega el turno a LINQ to XML.

Antes de comenzar, hago un recordatorio de algunos de los enlaces de interés que he publicado sobre LINQ:

Una vez hecho esto, comenzaremos ya con este ejemplo.

Lo que vamos a hacer, es trabajar a partir de un documento XML que vamos a cargar en memoria para trabajar con sus datos.

En sí es un ejemplo muy sencillo que nos abrirá la puerta de trabajo con LINQ to XML.

En primer lugar, contaremos con un documento XML al que he llamado Documento.xml y que contendrá la siguiente información:

<?xml version="1.0"?>
<
datosGenerales>
  <
datosPersona>
    <
nombre>Fernando</nombre>
    <
edad>18</edad>
  </
datosPersona>
  <
datosPersona>
    <
nombre>Rosa</nombre>
    <
edad>17</edad>
  </
datosPersona>
  <
datosPersona>
    <
nombre>Carlos</nombre>
    <
edad>21</edad>
  </
datosPersona>
</
datosGenerales>

Partiendo de este documento XML, vamos a aprovechar la base de los ejemplos anteriores de LINQ puestos al principio de esta entrada, y vamos a insertar un control Button en el formulario Windows de ejemplo.

Finalmente, vamos a escribir el siguiente código de aplicación:

Public Class MainForm

   
Private Sub btnThirdTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThirdTest.Click
      
' LINQ to XML
      ' Creamos una fuente de datos a partir de un documento xml
      Dim documento As XDocument = XDocument.Load("C:\Documento.xml")
      
' Declaramos una variable para obtener los datos del
      ' documento XML que cumplen la condiciSql programada
      Dim personasSeleccionadas = From seleccion In documento.Descendants("datosPersona"Where seleccion.Element("nombre").Value Like "??r*" Select seleccion.Element("nombre").Value
      
' Declaramos una variable para obtener el resultado
      Dim resultadoObtenido As String = ""
      ' Recorremos los resultados de la condición Sql
      For Each elemento In personasSeleccionadas
         resultadoObtenido &= elemento & vbCrLf
      
Next
      ' Mostramos el resultado final
      MessageBox.Show(resultadoObtenido)
   
End Sub

End
 Class

Este ejemplo en ejecución, dará como resultado los valores Fernando y Carlos del documento XML.

Como vemos aquí, trabajar con documentos XML, cargarlos y trabajar con LINQ y sus datos es una tarea muy sencilla.

Cross Posted from Jorge Serrano - MVP Visual Developer - VB

Aprendiendo LINQ para Visual Basic 2008

Si quieres aprender LINQ para Visual Basic 2008, quizás te interesen los siguientes artículos que el equipo de VB de Microsoft está publicando.

En estos artículos escritos en inglés, se ven con ejemplos las características y partes más importantes de LINQ.

Esta información es a mi juicio muy interesante para los que empiezan con Microsoft .NET Framework 3.5.

Cross Posted from Jorge Serrano - MVP Visual Developer - VB

Me mola SharePoint, ¡quiero aprender SharePoint!

Si te mola SharePoint, o si no te mola tanto pero sin embargo te ha caído en gracia la responsabilidad de aprender más sobre este producto, quizás estés de enhorabuena.

El caso es que Microsoft ha publicado una seria de materiales muy interesantes.

Por un lado nos encontramos con Office SharePoint Server 2007 Training (Standalone Edition), y por otro lado Office SharePoint Server 2007.

Todo este material ocupa en total cerca de 300 Mb.

El primer material, Office SharePoint Server 2007 Training (Standalone Edition), lo podréis obtener en este enlace (140 Mb aproximadamente), el segundo material, Office SharePoint Server 2007 Training, lo podréis conseguir en este otro enlace (160 Mb aproximadamente).

Recordad que todo este material (videos, tutoriales y artículos), está elaborado en inglés.

Espero que este material sea del interés de más de uno.

Cross Posted from Jorge Serrano - MVP Visual Developer - VB
Posted por Jorge Serrano con no comments
Archivado en: