Todos los Eventos de Second Nug

Tras el cese de actividades de Second Nug en Febrero, poco a poco se han ido perdiendo los recursos que antes estaban disponibles para todos.

 Durante los 5 años que duró el grupo yo, como coordinador de este, dediqué un esfuerzo a ir recopilando todo el contenido que íbamos generando e ir clasificándolo.

 Ahora, y para que no se pierda todo el esfuerzo que pusimos entre todos, he subido a los servidores de MEGA más de 40 Gigas de contenido de Second Nug para que os lo descarguéis y hagáis con ello lo que queráis.

 Solo os quiero pedir dos cosas a cambio:

– Que uséis todo este material de una manera responsable teniendo en cuenta que fue concebido de manera libre, por y para la comunidad. O lo que es lo mismo, que no intentéis sacar beneficio económico de él.

– Que una vez que os lo hayáis bajado lo distribuyáis por los medios que tengáis a vuestra disposición, por ejemplo, que lo compartáis en el Emule, en el Torrent, en Youtube, en Skydrive, en Dropbox o en cualquier otro medio que se os ocurra, da igual. Así, si alguna vez vuelven a cerrar MEGA, que las copias de este material sigan circulando por internet.

Aquí os dejo el enlace:

https://mega.co.nz/#F!v4YTjDiS!GG_0gj4goo5sLe5GHwdt_Q

Una cosilla más, si veis que algo esta mal subido, avisarme para que lo corrija, no os cortéis 😉

Saludos!!

¿Quién no ha tenido problemas alguna vez al generar un Excel desde código?

Que si librerías COM de Office que fallan por todos lados, que si diferentes versiones Office que nos vuelven locos, que si subidas a producción que cascan a diestro y siniestro.

Desde luego los comienzos son muy duros y más cuando tenemos que lidiar con Office, cosa muy habitual en empresas que nos suelen pedir que nuestros programas saquen informes y cosas por el estilo, y no siempre podemos recurrir a nuestro maravilloso Reporting Services o a nuestro querido odiado Crystal Reports.

Para que nos resuelva todas estas dudas tenemos la oportunidad de preguntar a Pablo Pelaez, Microsoft Regional Director y MVP de VSTO (Visual Studio Tools for Office) que nos guiará por este complicado mundo del desarrollo para Office en un evento mañana día 3 en Second Nug. Aparquemos por un rato el Windows Day durante el día de mañana para asistir a un evento enfocado a una de las dudas más recurrentes en todas las comunidades:

 

 

Cuantos más seamos más información podremos sacarle sobre este oscuro y tenebroso mundo del desarrollo para Office, que a todos sin excepción nos ha traído de cabeza en alguna ocasión.

Aquí tenéis el enlace al registro, y recordar llegar puntuales para enteraros de los sorteos que organizamos y la forma de participar.

Un saludo.

Enterprise Library… ¿realmente sirve para algo?

¿Por qué deberíamos utilizar esta librería en nuestros proyectos? ¿Realmente nos aporta algo interesante? Eso es lo que hoy vamos a descubrir gracias a la colaboración de Bruno Capuano y Eduardo del Pozo.

Cumplimos un año desde nuestro primer evento allá por febrero de 2008 en Second Nug, y con esto de la crisis (hay que ver, es la excusa perfecta para todo últimamente jejeje) al final no hemos podido hacer la macro fiesta que teníamos pensada con famosos y modelos y tal, como dijo Bruno hace una semana.

El caso es que aunque no tengamos fiesta, tampoco podemos decir que todos los días podemos asistir a un WebCast con un tema como este y de manos de estos dos figuras sentaditos en el sillón de casa mientras tomamos unas patatitas fritas jejeje.

Os animamos a asistir, todavía estáis a tiempo de registraros aquí.

Como siempre habrá todo tipo de sorteos, eso sí, llegar puntuales para poder enteraros de cómo participar.

Nos vemos esta tarde.

[WebCast] Los entresijos del .NET al descubierto hoy en Second Nug

Llega un nuevo mes y como es habitual llega un nuevo evento de Second Nug: Descubriendo el CLR

Esta sesión, en lugar de mostrarnos las últimas tecnologías creadas sobre .NET, nos trasladará a los orígenes. Veremos cómo nace el CLR y, partiendo de los conceptos básicos, poco a poco nos iremos adentrando en los puntos clave de .NET:  modelo de ejecución, compilación, metadatos, etc. Descubriremos cómo funciona (realmente) el Garbage Collector viendo algunas de las novedades que incorpora en el Framework 3.5 y, como no, intentaremos desvelar algunos de los mitos que persiguen al Framework.


Todo ello de manos de Jose Fco Bonnin (Payvision), que sin duda nos dejará más que satisfechos.


Podeis registraros en este enlace: http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032389673&Culture=es-ES


Actualmente la web del grupo esta caida por problemas de hosting, esperamos ternerla activa esta tarde… aunque eso depende de los de sistemas (y ya sabeis lo que opino yo del tema jajaja)


Un saludo, os espero a todos…

Chrome y Javascript

 Realmente veo por aqui mucho criticar… salvo nuestro colega Llopis, que se ha marcado un pedazo de chorro de analisis.

Y señores… no todo va a ser malo, que parece que entre todos estamos crucificando al nuevo navegador, aunque si que estoy de acuerdo en muchas de las cosas dichas. Lo que yo creo que es lo unico que destaca como novedad de Chrome es su V8 JavaScript Engine.

Como bien ha explicado Llopis en su articulo, el V8 es un giro total en la manera en la que se ejecuta el javascript. Pero parece que funciona bastante mejor que de la manera que hasta ahora era la habitual, no hay mas que ejecutar un par de pruebas de rendimiento para darse cuenta:

http://code.google.com/apis/v8/run.html

http://www2.webkit.org/perf/sunspider-0.9/sunspider-driver.html

Supongo que toda esta «evolucion» en la velocidad que prentenden hacer en Google se basa en que sus aplicaciones como Docs, tienen mucho Javascript por debajo y me imagino que con el tiempo si las aplicaciones de la empresa continuan con este modelo, necesitaremos de un motor Javascript muy potente para que vayan fluidas.

Asi que bueno… alguna novedad parece que si tiene el navegador… no seamos tan crueles 😛 Aunque bien es cierto que le queda mucho por evolucionar.

Y no me enrollo más… que ya estoy, al igual que todos, un poquito harto de leer sobre el Chrome jejeje.

Un saludo.

Los Foros de MSDN reciben mañana la ayuda de Second Nug

De entre todas las preguntas más recurrentes de los Foros de MSDN cabe destacar la relacionada con los controles DataGrid de .NET

 

Mañana queremos dedicarle nuestra sesión en Second Nug a este control y a todas las utilidades que podemos sacar de él y que tantas dudas suscitan a los que lo utilizan con asiduidad.

 

Dos ponentes de gran categoría como José Manuel Alarcón (MVP de ASP.NET) y Luis Miguel Blanco (MCSD y MCAD) nos pondrán al día de todo lo que podemos hacer con dichos controles en sus versiones para ASP.NET y WinForms, contestando además a las preguntas que los asistentes y a las dudas que puedan surgir durante la marcha.

 

Sin duda una gran aportación no solo para los usuarios del Foro sino para la comunidad en general, ya que podrá ser consultado a posteriori de manera offline como todos los eventos de Second Nug, aprovechando así esta gran ventaja para que personas que tengan dudas en el futuro sobre el uso de este control puedan disponer de este fantástico material.

 

Pero claro, mejor será la aportación cuantas más personas asistamos y exprimamos a nuestros expertos para sacar el máximo partido con nuestras preguntas y nuestra participación como asistentes.

 

Podéis registraros aqui, o visitando la web del grupo.

 

¡¡Animaros a participar!!

 

Además me gustaría aprovechar para invitaros de nuevo a suscribiros a nuestro grupo. Para que estéis al tanto de las últimas noticias del grupo. Podéis hacerlo desde la portada de nuestra web. Este fin de semana hemos sorteado entre los integrantes ¡¡una suscripción a TechNet Plus!!

 

Un saludo, nos vemos mañana.


Problemas habituales en los hosting

A todo programador Web le ha pasado alguna vez que por una razón o por otra se despierta un día y su hosting esta caído.

 

Tras poner un parte al departamento de sistemas y tras horas de espera levantan el servidor sin darte ningún tipo de explicación… eh y cualquiera les dice algo, que todavía alguno se te pone chulo.

 

Sinceramente los que programamos paginas Web siempre solemos estar bajo la presión de no subir nada a producción que pueda provocar que el servidor se caiga o no este disponible aunque sea por cuestión de minutos.

 

Cada minuto que la Web no funciona por nuestra culpa es un minuto más que nuestro jefe de producto acumula para odiarnos y echárnoslo en cara y pedirnos explicaciones.

 

Sin embargo en el departamento de sistemas esto no ocurre. Ellos pueden dejar colgada la Web porque están haciendo «mantenimientos» en el servidor… ¡¡y no pasa nada!! No tienen que dar más explicaciones y pueden dejar tirado el servicio hasta que vuelvan de tomar su cafecito tranquilamente.

 

Pero bueno… esto es el pan de cada día. Espero que haya sitios en los que esto que relato no ocurra… a ver si un día encuentro uno de esos 😛

 

Saludos.


 


PD: Espero que los de sistemas no os enfadéis mucho conmigo, solo pretendía desahogarme un poco 😉

El mes de los { heroes } en Second Nug

El martes de la semana que viene comienza en Second Nug el mes dedicado a Visual Studio Team System 2008 con dos eventos del Heroes Community Launch:


El dia 3 Luis Fraile nos presentará las Novedades Visual Studio Team System 2008


El evento se centrará en aspectos como:


– Herramientas de Profiling
– Integración Continua
– Mejoras en la gestión del código fuente
– Modos de trabajo Online y Offline



Y el dia 17 Bruno Capuano nos trae un evento de alto nivel: Software Factories con VSTS: ¿verdadero o falso?


Mucho se ha escrito sobre Software Factories, sobre conceptos para la industrialización del proceso de desarrollo y sobre otros temas que sirven para marear a la gente. Es por eso que el siguiente paso, que es llevar esta teoría a un escenario real, es mucho más complejo de lo que parece.


Visual Studio Team System, es una herramienta que gracias a un modelo muy flexible permite solucionar numerosos problemas que plantea la teoría; sin embargo hasta la llegada de «Rosario» todavía queda mucho por explorar.


En esta sesión veremos parte de las capacidades de extensión VSTS, y algunos ejemplos sobre como traer a la realidad los conceptos básicos para la creación de activos para las Software Factories.



Ambos eventos serán entre las 19:30 y las  21:30 (GMT+2), y como en anteriores ocasiones, se retransmitirá vía Web a través de Live Meeting.


A disfrutar 😉

Exportar datos en formato XML en SQL Server 2005

Me surgió este tema en el trabajo, y busque información por Internet. Hay numerosos ejemplos de importación pero los de exportación son muy escasos y confusos, así que decidí resumir de forma básica las “herramientas” que encontré en mi pequeña búsqueda. 

En este texto vamos a ver como generar un documento XML directamente haciendo una consulta sobre la base de datos y como guardar el resultado en un archivo XML físico en la maquina. Además veremos como alternativa como recuperar el resultado de una consulta de este tipo en .NET

 

Consultas de Selección para XML mediante FOR XML:

 

La consulta más básica de este tipo la podemos construir así:

 



 
SELECT * FROM TABLA FOR XML AUTO 
 

Y nos devolverá al parecido a esto:

 



 

<TABLA CAMPO1=»1″ CAMPO2=»correo1@pruebas.com»/>

<TABLA CAMPO1=»2″ CAMPO2=»correo2@ pruebas.com «/> 
 

Como veis de esta manera el XML devuelto no tiene nodo principal y cada subnodo lleva como nombre el nombre de la tabla y como atributos los nombres de cada campo y sus contenidos.

 

Existen otras dos formas básicas de hacer consultas FOR XML: RAW Y PATH

 



 SELECT * FROM TABLA FOR XML RAW
 

<row CAMPO1=»1″ CAMPO2=»correo1@pruebas.com»/>

<row CAMPO1=»2″ CAMPO2=»correo2@ pruebas.com «/> 
 

Con RAW los subnodos siempre de nombraran como «row»

 

Y PATH que a simple vista nos devolvería el mismo resultado que AUTO permite una mejor mezcla entre parámetros y atributos dentro de cada subnodo devuelto en el XML.

 

Os voy a mostrar un par de utilidades para mejorar el aspecto del XML devuelto aunque no me voy a centrar en mostrar todas. Podéis consultar el resto de opciones en:

 

http://msdn2.microsoft.com/es-es/library/ms190922.aspx

 

Podemos por ejemplo devolver documentos Atom de una manera sencilla así:

 



 SELECT TOP 2 ID_TABLA as ‘id’ FROM TABLA as item FOR XML AUTO, ROOT (‘feed’), ELEMENTS 

Que devolverá algo así:

 



 
<feed>         
   <item>
                    
       <id>1</id>
         
   </item>
         
   <item>
                    
      
<id>2</id>
         
   </item>
</feed> 
 

Primero señalar en los ALIAS de la tabla como de los campos son reconocidos por la consulta y añadidos al XML remplazando sus nombres originales.

 

El modificador ELEMENTS indica a la consulta que cada campo debe ir como un subnodo separado y no como un atributo.

 

Con el modificador ROOT añadimos un nodo principal al documento, y así de paso hacemos cumplir la normativa XML que indica que todo documento XML debe tener un único nodo principal.

 

Sin embargo en el caso de un documento Atom, para el nodo principal «feed» necesitamos declarar un espacio de nombres. Para lo cual SQL Server nos provee de la función WITH XMLNAMESPACES que deberemos poner justo antes de nuestra consulta de selección:

 



 WITH XMLNAMESPACES (DEFAULT ‘http://www.w3.org/2005/Atom’) 

SELECT TOP 2 ID_TABLA as ‘id’ FROM TABLA as item FOR XML AUTO, ROOT (‘feed’), ELEMENTS 
 

Y esto generará un documento más acorde con el estándar Atom:

 



 <feed xmlns=»http://www.w3.org/2005/Atom»>         
    <item>
                    
        <id>1</id>
         
    </item>
          
    <item>

        <id>2</id>


    </item>

</feed> 
 

Podéis ver la documentación para insertar más espacios de nombres a un nodo:

 

http://msdn2.microsoft.com/es-es/library/ms177607.aspx


Ahora que ya tenemos nuestro documento XML a nuestro gusto es la hora de guardarlo.

 

Para ello vamos a utilizar la función «xp_cmdshell» y el comando «sqlcmd».

 

La función «xp_cmdshell» requiere cambiar un poco la configuración de nuestra base de datos, para ello vamos a utilizar:

 




EXEC
sp_configure ‘show advanced options’, 1;
GO
RECONFIGURE;
GO
EXEC sp_configure ‘xp_cmdshell’, 1;
GO
RECONFIGURE;

GO

 
 

Que nos dará permisos para utilizar dicha función.

 

Una vez reconfigurada nuestra base de datos vamos a crear un archivo de texto en el disco duro donde escribiremos nuestras consulta y que luego será leído por el comando «sqlcmd» y ejecutado.

 

Nuestra consulta será algo así:

 



 :XML ON 

USE nuestraBaseDeDatos
GO
SET NOCOUNT ON 

SELECT ‘<?xml version=»1.0″ encoding=»utf-8″ ?>’; 

WITH XMLNAMESPACES      
(
      ‘http://pruebas.com/2008/FS’ as fs,     
DEFAULT ‘http://www.w3.org/2005/Atom’
      )      

SELECT 
           
   ID_TABLA as ‘fs:recid’
     
FROM
           
   TABLA as item
           
FOR XML AUTO,
           
ROOT (‘feed’),
           
ELEMENTS
 

SET NOCOUNT OFF 
 

Vamos a explicar un poco esta consulta:

 

El modificador :XML ON indicará a la base de datos el tipo de datos que vamos a devolver. Si no ponemos este modificador es muy probable que lo que nos escriba posteriormente en el archivo sea ilegible. Este modificador solo es necesario usarlo si vamos a utilizar luego el comando «sqlcmd».

 

Modificamos el valor de NOCOUNT para evitar que en el archivo se grabe una línea muy molesta que indica el número de filas afectadas.

 

Además añadimos antes de la consulta la declaración del documento XML para que la inserte por encima del resultado de la consulta.

 

Esta consulta la grabamos en nuestro disco, por ejemplo en «c:consultaPrueba.sql».

 

Y ya podemos generar nuestro documento XML de esta forma:

 



 DECLARE @cmd VARCHAR(1000) 

SELECT @cmd = ‘sqlcmd -Uusuario -Pcontraseña -i «c:consultaPrueba.sql» -o «c:resultadoPrueba.xml»‘ 


EXEC
master..xp_cmdshell @cmd

 
 

Lo que nos generará un archivo «c:resultadoPrueba.xml» con el contenido de nuestra consulta.

 

http://msdn2.microsoft.com/es-es/library/ms175046.aspx

 

http://msdn2.microsoft.com/es-es/library/ms162773.aspx

 

Por ultimo me gustaría enseñaros como recuperar el contenido de una consulta de tipo FOR XML desde .NET:

 

Para ello tenemos que utilizar una función especial de nuestro SqlCommand, la función ExecuteXmlReader.

 

Debemos usarla ya que permite devoluciones de cadenas XML superiores a 2 mil caracteres que de otra manera se truncarían o seria devueltas en varios conjuntos de resultados.

 

Así pues quedaría algo así:

 




SqlConnection
con = new SqlConnection(cadenaConexion); 

SqlCommand comando = new SqlCommand(«SELECT ID_TABLA as ‘recid’ FROM TABLA as item FOR XML AUTO, ROOT (‘feed’), ELEMENTS», con); 

con.Open(); 

XmlReader reader = comando.ExecuteXmlReader(); 

XmlDocument doc = new XmlDocument(); doc.Load(reader); 

doc.PrependChild(doc.CreateNode(XmlNodeType.XmlDeclaration, «», «»));
 

con.Close();

 
 

En este caso es importante no cerrar la conexión antes de cargar el XmlReader en el XmlDocument, en el caso contrario obtendremos una excepción.

 

También he añadido como se insertaría en este caso la declaración del documento XML, como en el caso anterior.

 

Publicado también en:

 

http://www.moreplus.es


 

Procedimientos almacenados – Nueva colaboracion con el Foro de MSDN

Hola,

Esta vez ha sido Maika Hernández quien ha dado el siguiente paso y se a animado a escribir un artículo para la Iniciativa FAQ en Foros MSDN y NewsGroup ASP.NET

Esta iniciativa fue creada inicialmente por Luis Ruiz Pavón y por mi, debido al gran volumen de preguntas en los foros y grupos de noticias de MSDN y la poca información aclaratoria al respecto, hace ya casi un año. Desde entonces se nos han ido uniendo más participantes como Carmen Sánchez, Toni Recio, Mauricio Gómez, habituales de las comunidades de Microsoft, y ahora Maika Hernández.


 

El nuevo articulo Procedimientos almacenados – SQL Server 2005 lejos de mostrar novedades en cuanto a SQL Server 2005 lo que pretende, al igual de todos los demás artículos de esta iniciativa es servir como guía básica o referencia a los principiantes.

Desde aquí todos los que pertenecemos y ayudamos a dicha iniciativa nos gustaría pediros vuestro apoyo, aportando mas documentación y usando la que ya disponemos como enlaces a recomendar a las personas que se unen a este fascinante mundo del .NET


Un saludo.