Título Microsoft Innovation Centers Texto Acortar la brecha digital a través de la difusión desde los centros de la sociedad digital y constituir auténticos polos de conocimiento que favorezcan la transferencia tecnológica es el reto final de los Centros de Innovación de Microsoft. Esto se consigue generando un interés común por parte de todos los implicados: por un lado, las empresas, a las que se dan a conocer los beneficios que conlleva la innovación; por otro, las administraciones públicas, decididas a promover el cambio. Aumentar el nivel de I+D+i, incrementar la penetración de las TIC en las empresas, mejorar el conocimiento sobre cómo la tecnología cambia los procesos de negocio de las compañías, multiplicar el número de empresas innovadoras de una Comunidad... son los desafíos a los que dan respuesta los Centros de Innovación. Así, a través de ellos y de otras iniciativas, intentamos proporcionar las mejores herramientas a los mejores equipos humanos, hacer que sean capaces de desplegar todo su potencial y, gracias a él, ayudar a otros a innovar en sus negocios y sus proyectos. Por ello, facilitamos el más rápido acceso a las últimas tecnologías, ayudamos a las compañías que desarrollan software a definir mejores arquitecturas, a solucionar problemas. En definitiva, a ser más competitivas. Las tecnologías de información son un aliado estratégico para las organizaciones y las personas. Se dice que la información es poder. Hemos crecido en una industria emergente que está posicionada prácticamente en todos los aspectos de la vida empresarial y personal. La red de MIC en España está formada por 8 centros, 6 en funcionamiento y 2 de próxima creación, encargados de divulgar la filosofía Microsoft entre la comunidad de empresas y desarrolladores. 1. Walqa MTC (Instituto Tecnológico de Aragón): http://aragonmtc.com/cs2/Default.aspx En la actualidad son MTC (Microsoft Technology Center), de los cuales hay 12 en el mundo y 4 en Europa. Como tal es un centro dedicado a dar apoyo a los Fabricantes
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Título Microsoft Innovation Centers
Texto Acortar la brecha digital a través de la difusión desde los
centros de la sociedad digital y constituir auténticos polos de
conocimiento que favorezcan la transferencia tecnológica es el
reto final de los Centros de Innovación de Microsoft. Esto se
consigue generando un interés común por parte de todos
los implicados: por un lado, las empresas, a las que se dan
a conocer los beneficios que conlleva la innovación; por otro,
las administraciones públicas, decididas a promover el
cambio.
Aumentar el nivel de I+D+i, incrementar la penetración de las
TIC en las empresas, mejorar el conocimiento sobre cómo la
tecnología cambia los procesos de negocio de las compañías,
multiplicar el número de empresas innovadoras de una
Comunidad... son los desafíos a los que dan respuesta los
Centros de Innovación.
Así, a través de ellos y de otras iniciativas, intentamos
proporcionar las mejores herramientas a los mejores
equipos humanos, hacer que sean capaces de desplegar
todo su potencial y, gracias a él, ayudar a otros a innovar en
sus negocios y sus proyectos. Por ello, facilitamos el más
rápido acceso a las últimas tecnologías, ayudamos a las
compañías que desarrollan software a definir mejores
arquitecturas, a solucionar problemas. En definitiva, a ser
más competitivas.
Las tecnologías de información son un aliado estratégico para
las organizaciones y las personas. Se dice que la información
es poder. Hemos crecido en una industria emergente que está
posicionada prácticamente en todos los aspectos de la vida
empresarial y personal.
La red de MIC en España está formada por 8 centros, 6 en
funcionamiento y 2 de próxima creación, encargados de
divulgar la filosofía Microsoft entre la comunidad de empresas
y desarrolladores.
1. Walqa MTC (Instituto Tecnológico de
Aragón):
http://aragonmtc.com/cs2/Default.aspx
En la actualidad son MTC (Microsoft Technology Center),
de los cuales hay 12 en el mundo y 4 en Europa. Como
tal es un centro dedicado a dar apoyo a los Fabricantes
Texto En este mundo de ensalada de siglas que son las TIC, este mes quiero intentar explicar la ecuación arriba presentada. Aunque puede parecer evidente que S+S no es lo mismo que SaaS creo que merece la pena comentarlo un poco, porque esas “S” se parecen bastante en ambos casos.
¿De qué estamos hablando? Del futuro de la programación (o presente, en las empresas TIC innovadoras). El software y los servicios. O los servicios de software. Y el concepto que Microsoft y otros fabricantes de software tienen del mismo.
El concepto “SaaS”, o “Software as a Service”, se basa en la idea de que dado que las comunicaciones entre sistemas (básicamente nuestro acceso a Internet “urbi et orbi”) son cada día más rápidas y frecuentes, el futuro del software ya no reside en las aplicaciones “dedicadas” tradicionales (es decir aquellas que instalamos en nuestro PC y por tanto consumen recursos del mismo: ocupan espacio en disco, necesitan memoria y CPU para ejecutarse, etc.) sino en aplicaciones conectadas a uno o varios servicios simultáneamente por ejemplo, a través de un navegador web (en este caso casi no tienen “footprint” o huella en cuanto a espacio de disco y su consumo de recursos es menor).
Por su parte, Microsoft cree que el modelo más adecuado en cambio se trata del “S + S” o “Software más Servicios”, donde el software dedicado se complementa de manera efectiva con unos servicios que residen en la “nube” de Internet o nuestras intranets empresariales. Este modelo defiende que así aprovecha lo mejor de ambos mundos, donde a la potencia de las aplicaciones de escritorio la añade la flexibilidad que aporta el uso de los servicios. El mensaje en este caso es que las denominadas Productivity Applications, o aplicaciones que los usuarios emplean en su trabajo diario como Microsoft Excel, Word, Outlook, etc. necesitan tener unas características de usabilidad, capacidades, riqueza, etc. que sólo son posibles si estas aplicaciones son un software específico.
Por poner algunos ejemplos concretos, podemos nombrar a Google Docs como aplicación SaaS o a Microsoft Word como aplicación S+S. ¿Mejores o peores? Lo cierto es que cada una tiene su caso de aplicación concreto. Pero también que si a una aplicación rica como Microsoft Word (con capacidades por ejemplo para aplicar formatos y temas diversos con 1 click, revisión ortográfica completa, gestión de enlaces y TOCs, flexibilidad completa para incorporar tablas, excels, gráficos, smart art, etc.) la añadimos la potencia en servicios que le aporta SharePoint… es como si S + S fuera “SaaS con hormonas”.
Además de todo esto, tenemos el hecho de que los mismos servicios que soportan estas Productivity Applications pueden apoyar múltiples aplicaciones, de manera que también a nivel servidor vemos que S+S se presenta como una solución más completa que SaaS.
Una vez vista y explicada a grandes rasgos la arquitectura S+S, pasemos a un ejemplo práctico de desarrollo. En este caso vamos a desarrollar un pequeño complemento para Word 2007 con el que desarrollaremos un nuevo elemento de la cinta (o “ribbon”) de aplicaciones al que dotaremos de un botón con el que recuperaremos información de nuestro sitio Microsoft Office SharePoint Server via Web Services y que tendremos a nuestra disposición en Word. Vamos a emplear para ello Microsoft Visual Studio 2008 Professional y Visual Studio Tools for Office (VSTO).
Lo primero que hemos de hacer es crear nuestro proyecto. En este caso se trata de un proyecto de C#, para Office 2007 de tipo “Complemento de Word 2007”
Una vez se ha creado el proyecto, añadimos un nuevo elemento de tipo Cinta al mismo.
Esto nos abre la ventana de diseño de la cinta. Añadimos una nueva ficha que llamamos CES en nuestro caso (hay que hacer click con el botón derecho del ratón sobre una zona limpia y seleccionar “Agregar ficha de la
cinta de opciones”) y a esta le adjuntamos un Grupo y unos Botones, mediante los que accederemos a nuestra funcionalidad específica. Los ponemos bonitos (nombre, textos, iconos y demás) e iremos haciendo doble click en cada uno de ellos para escribir el código que ejecutarán.
Como ejemplo sencillo vamos a crear un código que automáticamente inserte en el documento un texto (que será nuestra firma) al pulsar el botón. El código será el siguiente:
private void Firma() { // Seleccionamos el rango activo Microsoft.Office.Interop.Word.Range range = Globals.ThisAddIn.Application.Selection.Range; // Insertamos nuestro texto range.Text = "Rafael Flores\n"; range.Text += "CES Microsoft .NET Navarra"; }
El resultado es este:
Bien, funciona, pero si nos quedamos en esto no tenemos esa utilidad de S+S de la que hemos venido hablando, ¿no? Entonces vamos al siguiente paso, conectar con nuestro SharePoint y traer a nuestro documento Office información que podamos usar. Vamos a hacer dos ejemplos sencillos que valen para mostrar la técnica pero hay que destacar que con algo más de trabajo podemos hacer que nuestros Word, Excel, Powerpoint, Outlook, etc. recuperen información de nuestros sistemas
Lo primero que vamos a hacer es agregar una referencia a los servicios Web de Sharepoint que nos interesan (hablamos sobre esto en un artículo anterior que está disponible aquí). Por simplicidad usaremos un servicio Web, que se basa en el .NET Framework 2.0, pero si esto fuera un desarrollo para producción recomendaríamos usar WCF de .NET Framework 3.5 ;)
Para definir este servicio, pulsamos con el botón derecho del ratón sobre el nombre de proyecto y elegimos “Agregar referencia de servicio”. Ahora tenemos que “escarbar” un poco para añadir nuestro servicio Web: pulsar “Avanzadas…” en la pantalla que se nos muestra y en la siguiente “Agregar referencia Web”.
Llegamos por fin a la pantalla que nos interesa, donde debemos indicar la Dirección URL del servicio Web al que nos conectaremos y darle un nombre ya que el nombre por defecto ayuda poco. Pulsamos “Agregar referencia” y listo, ya podemos usar ese servicio Web en nuestro proyecto.
Para probarlo vamos a programar el código del segundo botón “Listas SharePoint”. Este botón simplemente se conectará a nuestro SharePoint y recuperará los nombres de todas las listas que tiene definidas. Con eso veremos que todo funciona como esperamos. El código que usamos es este:
private void EncuentraListas() { String listName; XmlNode listNodes; XmlAttributeCollection nodeAttribs; ListsCESWS.Lists listService = new ListsCESWS.Lists(); // Creamos las credenciales que nos permiten conectarnos a // SharePoint y las asignamos al servicios System.Net.NetworkCredential myCred = new System.Net.NetworkCredential(USUARIO, PASSWORD); listService.Credentials = myCred; // Invocamos el método GetListCollection del servicio Web listNodes = listService.GetListCollection(); // Para cada nodo XML recuperado obtenemos el valor del elemento // Title y lo volvemos a nuestro documento foreach (XmlNode node in listNodes) { nodeAttribs = node.Attributes; listName = nodeAttribs.GetNamedItem("Title").Value; Microsoft.Office.Interop.Word.Range range = Globals.ThisAddIn.Application.Selection.Range; range.Text = listName + "\n"; }; }
En este caso vemos que ya hay que hacer uso de unas credenciales de
autenticación para acceder a los contenidos de SharePoint. Aquí lo que se usa es una configuración seguridad basada en Usuario y Password, pero que en casos reales podrá ser más complicada.
Como resultado tenemos una lista de “nombres de listas SharePoint” en nuestro documento Word, lo cual prueba que el funcionamiento es correcto.
Vamos a continuación a complicar un poco el proceso. Lo que queremos es seleccionar de la lista “Eventos” el título de aquellos que se enmarcan en el área del CES Microsoft. Para esto hemos de usar un documento XML compuesto de diversos nodos XML que nos servirán para codificar una consulta que será la que filtrará los elementos que recuperamos.
También hemos de tener en cuenta la estructura de la información que nos devuelve SharePoint, en formato XML.
private void EncuentraEventos() { XmlNode listNode, eventNode; XmlAttributeCollection nodeAttribs; String eventName; ListsCESWS.Lists listService = new ListsCESWS.Lists(); // Creamos las credenciales que nos permiten conectarnos a // SharePoint y las asignamos al servicios System.Net.NetworkCredential myCred = new System.Net.NetworkCredential(USUARIO, PASSWORD); listService.Credentials = myCred; // Recuperamos listNode = listService.GetList("Eventos"); // Creamos las estructuras XML necesarias
XmlDocument xmlDoc = new System.Xml.XmlDocument(); XmlNode ndQuery = xmlDoc.CreateNode(XmlNodeType.Element, "Query", ""); XmlNode ndViewFields = xmlDoc.CreateNode(XmlNodeType.Element, "ViewFields", ""); XmlNode ndQueryOptions = xmlDoc.CreateNode(XmlNodeType.Element, "QueryOptions", ""); // Cargamos la información que buscamos en las estructuras ndQueryOptions.InnerXml = "<IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns>" + "<DateInUtc>TRUE</DateInUtc>"; // Recuperamos Título y Fecha OJO:Nombres en original INGLES ndViewFields.InnerXml = "<FieldRef Name='Title' /><FieldRef Name='Date'/>"; // Filtramos con la condición de la query que Origen // sea igual (Eq) a Microsoft ndQuery.InnerXml = "<Where><Eq><FieldRef Name='Origen'/>" + "<Value Type='String'>Microsoft</Value></Eq></Where>"; try { // Recuperamos los elementos de la lista Eventos // filtrados con nuestras condiciones XmlNode ndListItems = listService.GetListItems("Eventos", null, ndQuery, ndViewFields, null, ndQueryOptions, null); // Procesamos cada elemento recuperado buscando el título foreach (XmlNode node in ndListItems.ChildNodes) { // El contenido va en los subnodos que nos devuelve SharePoint foreach (XmlNode subnode in node.ChildNodes) { // Buscamos valores de los atributos del nodo nodeAttribs = subnode.Attributes; if (nodeAttribs != null) { // Preguntamos por el título del evento eventNode = nodeAttribs.GetNamedItem("ows_Title"); if (eventNode != null) { // Si es título, escribimos en el documento su valor eventName = eventNode.Value; Microsoft.Office.Interop.Word.Range range = Globals.ThisAddIn.Application.Selection.Range; range.Text = eventName + "\n"; }; } }; }; } catch (System.Web.Services.Protocols.SoapException ex) { MessageBox.Show("Message:\n" + ex.Message + "\nDetail:\n" + ex.Detail.InnerText + "\nStackTrace:\n" + ex.StackTrace); } } En este caso, el resultado son los títulos de los Eventos del área de “CES Microsoft” que tenemos registrados en nuestro SharePoint.
Como estos sencillos ejemplos pretendían demostrar, el uso de Visual Studio junto con las Visual Studio Tools for Office nos permiten de una manera fácil llevar a la práctica el concepto de S+S de Microsoft. Y no nos tenemos que limitar sólo a consultas, todo el conjunto de operaciones de actualización, inserción y borrado está a nuestra disposición. Adecuar o adaptar las aplicaciones de escritorio más usadas en las organizaciones (caso de Microsoft Office) para la interrelación con las aplicaciones de negocio (SharePoint, Exchange, Dynamics, etc.), se convierte en un sencillo proceso de programación que las herramientas de Visual Studio nos simplifican enormemente.
Categor
ías
CES Microsoft
Tema Desarrollo
Autor Rafael Flores Yoldi
Mes Octubre
Año 2008
Boletín 10
Título
Proyecto piloto TDT: parte 2: fase 1
Tex
to
Inicialmente este segundo artículo ocupaba unas 22 páginas. Para
favorecer la lectura he decidido dividirlo en 2 partes.
Esta, la primera parte de la fase 1, contempla los siguientes
apartados:
Gestión de la primera fase.
Descripción de la arquitectura TDT Infraestructura necesaria para el desarrollo del proyecto.
Incorporación y formación del equipo local. Identificación de otros servicios.
La segunda parte completará el periplo por la fase 1 describiendo lo
que fueron los procesos de desarrollo de los siguientes módulos:
Lanzadera Servicios de Hacienda.
Así pues, comenzamos con el artículo:
Continuo con la línea iniciada en el artículo anterior “Proyecto piloto
TDT: parte 1: definición”, en el que dejé planteadas un amplio
número de tareas a realizar durante esta primera fase.
Comenzaré describiendo lo que fue la gestión de esta fase y después
comentaré más profundamente los detalles de cada tarea y actuación.
Se empezó elaborando el borrador de un plan de acción para esta
primera fase con la planificación de tareas, asignación de recursos y
descripción de necesidades (necesidades técnicas, necesidades de
información, etc). Este borrador debía abarcar finalmente los
siguientes trabajos:
Infraestructura necesaria para el desarrollo del proyecto.
Identificación de otros servicios. Incorporación y formación del equipo local.
Desarrollo de una lanzadera (tal y como se adelantó en el artículo anterior, esta es una aplicación que da acceso a los servicios en TDT)
Desarrollo de los servicios de Hacienda para la campaña de la Renta.
Desarrollo de un posible servicio informativo adicional. Esto es:
Cat
egorías
CES OpenSouce/Java
Te
ma
Varios
Aut
or
Raúl Sanz de Acedo
Mes Octubre
Año 2008
Bol
etín
10
Título Sincronización de aplicaciones MHP (Parte 1)
Texto Cuando trabajamos con aplicaciones MHP, a menudo es necesario
que estas estén sincronizadas con los contenidos audiovisuales para
los que han sido creadas. Por ejemplo si hacemos una aplicación
para un concurso de preguntas y respuestas, nos interesa que el
usuario pueda contestar a dichas preguntas a la vez que estas son
formuladas en el programa original. Por ejemplo, en el minuto 7 del
programa debe presentar la pregunta 3. Pero el problema es,
¿como sabe el receptor cuando se ha llegado al minuto 7 del
programa? En muchos sistemas multimedia esto se hace
considerando cuando empieza el programa, y a partir de entonces
se cuentan los 7 minutos. Cuando se trata de servicios de televisión
digital, enviar una indicación de cuando empieza un programa no es
una solución válida. En televisión no existe un concepto real de
tiempo, ya que el usuario puede incorporarse al flujo en cualquier
punto, si se selecciona el programa una vez empezado no hay
forma de saber cuanto tiempo ha transcurrido desde que empezó el
programa, o si se cambia de canal en mitad de un programa
también se pierde la referencia de tiempos, aunque luego volvamos
al mismo canal. Pero si no podemos usar el tiempo como
mecanismo para la sincronización de las aplicaciones, ¿cómo
podemos obtener un tiempo de referencia que nos permita
determinar el momento en que debemos activar un evento? Para
solucionar esto DSM-CC (Digital Storage Media Command and
especializados". En el mismo se citaban las declaraciones
que en octubre de 2006 realizó Rosa García, presidenta de Micosoft Ibérica: "Para 2010 y por falta de formación, en
Microsoft Europa habrá 10000 puestos sin cubrir". Y en un resaltado de dicho artículo se indica: "35000 profesionales de la informática y de las
telecomunicaciones harán falta en nuestro país en 2010". En términos proporcionales de población eso indicaría que en
Navarra harán falta unos 455. Cabo nº 2: solicité a la empresa Adecco su "Guía Salarial
2008" acerca de las retribuciones de los profesionales del área de IT en España, y muy amablemente me la enviaron
por correo. En ella, entre otras cosas, detectan 25 perfiles clave en el sector e indican su retribución por dimensión de la empresa,
sector económico, comunidad autónoma, edad y experiencia. Los perfiles eran más o menos éstos:
Administrador de base de datos Administrador de red Administrador de sistemas Administrativo Analista de sitemas Analista funcional Analista orgánico Analista programador Comercial Consultor ERP Coordinador de help desk Director Diseñador web Empleado de help desk Experto en CRM Jefe de proyecto Jefe de sistemas Operador Operador de red Profesor Programador Técnico de redes Técnico de sistemas Tester Webmaster
Para Navarra estimaban unas retribuciones que iban desde los 14500 euros de un Empleado de help desk hasta los 43100 de
un Jefe de proyecto (quien, curiosamente, percibe más que un Director de informática). Las cifras reflejan la Retribución Total Anual Bruta. Cabo nº 3: acudí en septiembre a un estudio de fotografía
para realizar unas fotos de carnet. Mientras eseperaba turno, vi allí enmarcada la orla de la última promoción de titulados
superiores en Informática por la Universidad Pública de
Navarra. Pude contarlos: no era difícil. Dos filas de nueve personas cada una de ellas: dieciocho ingenieros superiores
en informática acaban sus estudios en Navarra cada año. Atando cabos: los puntos anteriores me hicieron pensar
sobre la situación del sector TIC. Un sector que, tradicionalmente (si es que este adjetivo se le puede ya
aplicar), se consideraba atractivo a la hora de captar empleados de diferente cualificación. Y que parece ser que no los encuentra. A pesar de la cantidad de perfiles y
retribuciones que pueden acogerse bajo el apelativo de 'informático': "Habla con el informático." es una frase muy
alta en el ránking de cualquier tipo de empresa. Por otro lado cada año se titulan en Navarra menos personas que perfiles existen en el sector aunque es bien cierto que
algunos de esos perfiles, posiblemente, no necesiten esa cualificación. Pero a un ritmo de 18 personas por año,
necesitaríamos un cuarto de siglo para paliar el déficit que ocurrirá ¡en 2010! De acuerdo que hay profesionales que pueden surgir de otras
ramas o de otros lugares (se habla mucho de Iberoamérica o de la India). En todo caso todos estas personas deberán suplir
sus carencias (técnicas o idiomáticas) mediante formación, algo que en tiempos de crisis chirría aún más que en los de bonanza. No sé si finalmente he conseguido enmarañar los cabos que
tenía pero si espero haberos hecho reflexionar sobre el recurso más difícil de conseguir: el humano. Si quieres enviar algún comentario o sugerir temas a tratar en otros artículos, escribe a: curtasun[simboloArroba]cein.es