KBAlertz es una página web cuyo principal contenido es la publicación de todos los artículos de la base de conocimiento de Microsoft (Knowledge Base); yo no entiendo por qué Microsoft no nos aporta algún servicio web o RSS para conocer los últimos artículos publicados, buscar en la base de conocimiento sin tener que ir a la web de Microsoft, etc; si el servicio lo dan no lo conozco y me gustaría que alguien me rectificara …Bueno, pues la cosa es que le estaba dando vueltas a ver de qué forma poner en mi página los últimos artículos publicados en KB y cual es mi sorpresa que KBAlertZ nos da ese servicio; si pasais por http://www.kbalertz.com/webmaster, vereis unos cuantos ejemplos de como implementarlo en ASP.NET o ASP.

Su implementación es tan sencilla como hacer una petición a una URL y pasar dos argumentos, t para el ID de Tecnología y c para la cantidad de artículos. Lo que recupera es los últimos ‘c’ artículos publicados para la tecnología ‘t’.

La función que me he creado ha sido la siguiente:

  Public Function ObtenerKbAlertz(ByVal techId As Integer, ByVal count As Integer) As DataTable

    Dim ds As DataSet = New DataSet
ds.ReadXml(«
http://www.kbAlertz.com/websvc/latestkbs.aspx?t=» + techId.ToString() + «&c=» + count.ToString(),

XmlReadMode.ReadSchema)
Return ds.Tables(0)

  End Function

y la estructura del DataTable devuelta es la siguiente:

  • ID, Integer
  • Number, String
  • Title, String
  • DateEntered, DateTime
  • Url, String

lo único que quedaría sería leer los argumentos desde una caja de texto para los días, y desde un comboBox para el Id de la Tecnología … Sinceramente, lo que más me ha costado ha sido copiar/pegar los ids de tecnología con su descripción en el aspx … Bueno, cuento el truco que he usado; en KBAlertZ tienen una lista de todos los ids en una tabla html con sus tds, trs; pues bueno, le paso la tabla al UltraEdit, y a reemplazar textos para adaptarlo al dropdownList de ASP.NET 😉

Pues lo siguiente es rellenar un DataGrid con el resultado de la función que recupera el DataTable desde KBAlertz.

  Private Sub RecuperarKb()

    Dim n As Integer = 100
If IsNumeric(txtNumMensajes.Text) Then n = CType(txtNumMensajes.Text, Integer)
If n <= 0 Then n = 100
Dim dt As DataTable = ObtenerKbAlert(CType(cboKey.SelectedValue, Integer), n)
DBGridArticulos.DataSource = dt
DBGridArticulos.DataBind()

  End Sub

Me gustaría agradecer a KBAlert que nos ofrezca este servicio para poder colgarlo en nuestras páginas …

Echar un vistazo y mirar que chulo queda : http://www.siquelnet.com/kbalertz.aspx … ejem … por supuesto que he puesto por defecto que muestre primero los nuevos artículos de SQL Server 😛

Saludos !

 

Eladio Rincón