Comunidad Usuarios Microsoft Uruguay
Inicio de sesión
Iniciar la búsqueda
Inicio > Blog > Categorías
T4 For Dummies
Queremos compartir con uds. un video introductorio acerca de que es y para que sirve T4 (Text Template Transformation Toolkit)
 
Para verlo haga un clic aquí
 
Esperamos les sea de utilidad, hasta la próxima!
¿Como hacer que la API de ASP.NET Membership & Roles funcionen con una SQL Azure?

Los que llevamos tiempo jugando (1 año para ser exacto) con esto de Azure, sabemos que no era posible hasta ahora, utilizar la base que genera automáticamente ASP.NET Membership para la autenticacion y autorizacion de usuarios ya que posee algunas caracteristicas que no estan soportadas en SQL Azure.

Una alternativa, era usar unos proveedores customizados que se basan en Azure Storage (Blobs y Tablas). Pueden encontrar los mismos en el archivo Additional Samples y dentro del mismo ASPPROVIDERS, el cual pueden bajar de aqui

Si no querés usar estos proveedores customizados, la buena noticia es que los chicos de Microsoft se pusieron las pilas y sacaron una version actualizada de los scripts necesarios para crear la base de Membership que trabajen en SQL AZURE.

Pueden bajar los scripts de aquí Espero les sea de utilidad, hasta la proxima!

Importando FoxPro a SQL Express con un paquete SSIS

Hace unos días tuvimos que realizar una migración de datos en Fox Pro de un cliente a SQL.

Estuvimos evaluando varias alternativas hasta que nos encontramos con SQL Server Integration Services.

Dicha herramienta nos ahorró muchísimo trabajo y dolores de cabeza.

Ahora bien, el cliente además de la Base FoxPro, dispone de SQL Server Express que fue instalado por otro sistema y aquí es en donde la cosa se empieza a complicar:

“You cannot execute SSIS package in SQL Server 2005 Express edition” "SQL Server 2005 Express Edition does not include Integration Services or support for SQL Server 2000 DTS packages"

Es el mensaje que aparece en más de un foro cuando buscamos en la web.

¿Entonces, no podemos correr el paquete? Como veremos a continuación no es tan así :)

Microsoft pone a nuestra disposición “SQL Express With Advanced Services”, en la misma, hay una herramienta llamada dtexec que es la que nos va a permitir ejecutar el paquete .dtsx

A modo de ejemplo le dejo el contenido del bat que hicimos para ejecutar la tarea de importación

************************************************************

CD "C:\Archivos de programa\Microsoft SQL Server\100\DTS\Binn"

dtexec /f "c:\Fox2SQL.dtsx" /l "DTS.LogProviderTextFile;c:\Fox2SQL.log"

************************************************************

Y para ejecutarlo de manera automatizada siempre tenemos al viejo y querido “Tareas Programadas de Windows”

Para terminar debo decir que quedé gratamente sorprendido por la velocidad con que importa la información… una herramienta sumamente recomendable que conocimos gracias a una presentacion en CUMUY de Leonardo Amarelle.

Esperando les sea de utilidad, me despido hasta la próxima.

Presentación de Windows Azure de L&A Sistemas

Quiero compartir un video de la presentación que está proponiendo L&A Sistemas para el próximo Run 2.0 a llevarse en Montevideo. Creo que es una presentación que abarca todas las características de Azure y explica y demuestra todas sus funcionalidades. Próximamente les estaré pasando el link para que puedan votar por la misma y así, Alvaro y Leonardo nos expliquen con sumo detalle todo este nuevo mundo de la nube.

Ver video

Todo en uno: All-In-One Code FrameWork
Buscando unos ejemplos de código para un problemita que tenía, me encontré con CodeFX, también conocido como All-In-One Code FrameWork y me pareció que valía la pena compartir el "hallazgo" con uds.
 
Como ya habrán deducido por su nombre, All-In-One Code Framework es una gran biblioteca de ejemplos de código (actualmente tiene 290 y aumentando) en 3 lenguajes de programación distintos (C#,C++ y VB .NET) que agrupa 24 tecnologías de Microsoft (Windows 7,Silverlight 3,WPF, etc) y que está en permanentemente en fase de revisión y ampliación.
 
Según los creadores se diferencian de MSDN y CodeProject, ya que los ejemplos de CodeFx son típicos, extensibles, estructurados, completos, bien documentados y faciles de entender.
 
 
La página del proyecto: http://cfx.codeplex.com/
 
 
Sin duda una gran biblioteca de conocimiento, que vale la pena ver
 
Saludos y espero les sirva!
Silverlight + Sharepoint 2010, demostración del Run Reload, Argentina

Quiero compartir con todos ustedes la demostración que hicimos en el evento Run Reload en Buenos Aires, Argentina. Está demostración combina el poder de Silverlight 3.0 y la nueva versión de la plataforma Sharepoint Server 2010. La misma muestra una aplicación realizada para contestar una encuesta confeccionada en Sharepoint Server 2010, tomando los datos de una lista y guardando los resultados proporcionados por el usuario en la lista.
Tengo que agradecer a Alvaro (Siderys Elite Software) que estuvo trabajando varias horas en la creación, animación y estética de la aplicación Silverlight, sin él la misma no se podría haber realizado, gracias!!!

http://silverlight.services.live.com/invoke/110881/Survery%20-%20Sharepoint/iframe.html


En los próximos días estaremos publicando el artículo completo de como podemos hacer la misma y la aplicación Silverlight parametrizada para que la puedan usar con cualquier encuesta en Sharepoint 2010.

Fabián Imaz

Windows Azure Storage Client v1.0

El paquete de Noviembre de 2009 del SDK de Windows Azure y herramientas ha introducido para la muchachada una API totalmente renovada StorageClient v 1.0 que ahora es una parte integral de la liberación de Azure, en lugar de ser sólo un ejemplo como sucedia anteriormente (Para más información consulte nuestros post anteriores acerca del tema de almacenamiento en Azure). La API de StorageClient incluye cerca de 70 clases repartidas en 3 espacios de nombres:

Microsoft.WindowsAzure.StorageClient.dll

La funcionalidad de cliente de almacenamiento se encuentra en Microsoft.WindowsAzure.StorageClient.dll.
Esta funcionalidad se expone a través de cerca de 70 clases repartidas en 3 espacios de nombres:


Microsoft.WindowsAzure
Microsoft.WindowsAzure.StorageClient
Microsoft.WindowsAzure.StorageClient.Protocol


El espacio de nombres Microsoft.WindowsAzure proporciona funcionalidad en cuenta de almacenamiento. El espacio de nombres Microsoft.WindowsAzure.StorageClient proporciona la funcionalidad de clave de almacenamiento del cliente.
La clase Microsoft.WindowsAzure.StorageClient.Protocol proporciona la funcionalidad de bajo nivel relacionados con las llamadas REST al servicio de almacenamiento de Azure y no está cubierto en este post.

Espacio de nombres Microsoft.WindowsAzure

El espacio de nombres Microsoft.WindowsAzure comprende clases relacionadas con las cuentas de almacenamiento y credenciales:


CloudStorageAccount
StorageCredentials
StorageCredentialsAccountAndKey
StorageCredentialsSharedAccessSignature


CloudStorageAccount expone información de cuenta y clave, y es capaz de analizar el archivo de configuración para recuperar esta información.
StorageCredentials es una clase base abstracta para StorageCredentialsAccountAndKey, el soporte a las credenciales de clave compartida,
y StorageCredentialsSharedAccessSignature usadas para crear firmas compartidas para el acceso a blobs.

La clase CloudStorageAccount se declara:


public sealed class CloudStorageAccount {
// Constructors
public CloudStorageAccount(StorageCredentialsAccountAndKey storageCredentialsAccountAndKey, Boolean useHttps);
public CloudStorageAccount(StorageCredentials storageCredentials, Uri blobEndpoint, Uri queueEndpoint, Uri tableEndpoint);

// Properties
public Uri BlobEndpoint { get; }
public StorageCredentials Credentials { get; }
public static CloudStorageAccount DevelopmentStorageAccount { get; }
public Uri QueueEndpoint { get; }
public Uri TableEndpoint { get; }

// Methods
public static CloudStorageAccount FromConfigurationSetting(String settingName);
public static CloudStorageAccount Parse(String value);
public static void SetConfigurationSettingPublisher(Action<STRING,FUNC> configurationSettingPublisher);
public String ToString(Boolean exportSecrets);
public static Boolean TryParse(String value, out CloudStorageAccount account);

// Implemented Interfaces and Overridden Members
public override String ToString();
}


La clase CloudStorageAccount es esencial para el cliente de almacenamiento, ya que cualquier intento de utilizar el servicio de almacenamiento de Azure comienza por la creación de una instancia del mismo.
Los servicios de Windows Azure services utilizan el archivo de configuración para almacenar información de su cuenta tales como nombre y clave.
Una simple llamada al método estático FromConfigurationSetting() será suficiente para crear un CloudStorageAccount objeto correctamente inicializado a partir del archivo de configuración.
Sin embargo, un intento de hacer esto producirá un error en tiempo de ejecución porque no se ha especificado un valor de configuración de Publisher.
La solución a esto es invocar la SetConfigurationSettingPublisher() en el nuevo método OnStart() para el rol.
El código necesario para hacer esto es bastante retorcido, y la técnica más simple para hacerlo funcionar es la de copiarlo directamente del ejemplo de los thumbnails que viene con el SDK de Azure v1.0.


Es posible ignorar al archivo de configuración y crear un objeto de CloudStorageAccount de un objeto StorageCredentialsAccountAndKey como se muestra a continuación:

StorageCredentialsAccountAndKey storageCredentialsAccountAndKey = new StorageCredentialsAccountAndKey("ACCOUNT_NAME",
"ACCOUNT_KEY");
CloudStorageAccount cloudStorageAccount = new CloudStorageAccount(storageCredentialsAccountAndKey, true);


Esto hace que el cliente de almacenamiento vaya directamente contra el almacenamiento en la nube con la cuenta indicada.
Tenga en cuenta que la sustitución del ACCOUNT_NAME y ACCOUNT_KEY con las de almacenamiento de desarrollo no causa que sea usado el almacenamiento de desarrollo y causa un error de ejecución.
Sin embargo, la propiedad DevelopmentStorageAccount es un objeto pre instanciado del tipo CloudStorageAccount que puede ser utilizado para el acceso al almacenamiento de desarrollo:

CloudStorageAccount cloudStorageAccount = CloudStorageAccount.DevelopmentStorageAccount;


Espacio de nombres Microsoft.WindowsAzure.StorageClient

Este espacio de nombres es el núcleo del cliente de almacenamiento y dispone de casi 40 clases de apoyo a la gama completa de funcionalidad para blobs,
las tablas y las colas. Las clases son enumeradas aquí, junto con un breve resumen del uso de las mismas. Casi toda la funcionalidad se ofrece tanto en forma sincrónica y asincrónica. Por ejemplo, la clase CloudQueue soporta adición de mensajes sincrónica y asincrónica a una cola a través de los siguientes métodos:

public void AddMessage(CloudQueueMessage message, TimeSpan timeToLive);
public void AddMessage(CloudQueueMessage message, TimeSpan timeToLive);
public void AddMessage(CloudQueueMessage message);
public IAsyncResult BeginAddMessage(CloudQueueMessage message, TimeSpan timeToLive, AsyncCallback callback, Object state);
public IAsyncResult BeginAddMessage(CloudQueueMessage message, AsyncCallback callback, Object state);
public void EndAddMessage(IAsyncResult asyncResult);

Hasta la proxima!
Microsoft Web Platform Installer 2.0
Microsoft tiene un producto que para muchos ha pasado desapercibido y que resulta especialmente interesante a la vez que útil para otros, especialmente para la comunidad de desarrolladores o para aquellos que quieren empezar a trabajar con ASP.NET y que no saben como hacerlo, o incluso para aquellos que quieren montar un sitio Web rápidamente o instalar algunos componentes para el desarrollo Web, ya sean en su versión RTM o versión RC. Microsoft Web PI v2.0 o Microsoft Web Platform Installer v2.0, es un paquete gratuito elaborado por Microsoft y soportado en 9 idiomas, que contiene las partes o componentes fundamentales de una plataforma Web de Microsoft. Este paquete incluye IIS (Internet Information Services), SQL Server 2008 Express Edition, .NET Framework, y Visual Web Developer 2008. Adicionalmente, permite instalar también aplicaciones Web gratuitas para blogs, gestión de contenidos, etc, e incluso PHP El sitio web de dicha aplicacion es : http://www.microsoft.com/web/Downloads/platform.aspx
Al ingresar al sitio nos van a ofrecer el instalador que es muy liviano (85k) y el mismo nos va a permitir seleccionar los componentes que queremos instalar Como mencione anteriormente hay varias opciones que podemos seleccionar pero la que me resulto mas interesante fue la que esta marcada en la imagen (Herramienta de implementacion Web 1.0 o Web Deployment Tool)

Especialmente recomendada para aquellos que alguna vez han "sufrido" con la puesta en produccion de un sitio web. La herramienta de implementación Web simplifica la migración, la administración y la implementación de servidores IIS Web, aplicaciones y sitios Web. Los administradores pueden utilizar secuencias de comandos de la línea de comandos con la herramienta de implementación Web para sincronizar servidores IIS 6.0 y IIS 7.0 o para migrar un servidor IIS 6.0 a IIS 7.0. La herramienta de implementación Web también permite a los administradores y los usuarios delegados utilizar el administrador de IIS para implementar aplicaciones ASP.NET y PHP en un servidor IIS 7.0. Migrar aplicaciones Web entre IIS 6.0 y IIS 7.0 con facilidad Simplifica la planificación de su migracion de IIS 6.0 a IIS 7.0 determinando incompatibilidades y previsualizando los cambios propuestos antes de iniciar el proceso. Nos permite Aprender acerca de posibles problemas de antemano y nos da la oportunidad de adoptar medidas correctivas y simplifica la migración. Sincronizar su granja de servidores de forma eficaz La herramienta de implementación Web permite sincronizar eficientemente los servidores, aplicaciones o sitios en su granja de servidores IIS 7.0 al detectar las diferencias entre el origen y destino de contenido y transferir sólo los cambios que necesitan la sincronización. La herramienta simplifica el proceso de sincronización determinando automáticamente la configuración, contenido y certificados que se sincronicen de un sitio específico. Además del comportamiento predeterminado, todavía tiene la opción para especificar proveedores adicionales para la sincronización, incluyendo bases de datos, objetos COM, GAC ensamblados y configuración del registro. Empaquetar, archivar e implementar aplicaciones Web más fácilmente La herramienta de implementación Web le permite empaquetar la configuración y el contenido de las aplicaciones Web instaladas, incluidas las bases de datos y utilizar los paquetes para el almacenamiento o redistribución. Estos paquetes se pueden implementar mediante el Administrador IIS sin necesidad de privilegios administrativos. La herramienta se integra con Visual Studio de 2010 para ayudar a los desarrolladores a optimizar la implementación de aplicaciones Web al servidor Web. La herramienta también se integra con el instalador de plataforma Web para permitirle instalar fácilmente aplicaciones de web de la Comunidad. Puede enviar su propia aplicación a la Galería de aplicaciones Web. Características

  • Integración transparente con la interfaz del administrador de IIS 7.0 y Visual Studio 2010 para crear paquetes y desplegarlos en una máquina, de forma local y remota.
  • Integración transparente con el instalador de plataforma Web para instalar aplicaciones de web de la Comunidad, simple y fácil.

Paquetes de aplicaciones Web:

  • Capacidad para empaquetar una aplicación Web o un sitio entero, incluyendo las bases de datos asociados.
  • Capacidad para empaquetar las ACL, COM, GAC y registro de configuración. Es compatible con "live servers" y paquetes comprimidos como un origen o destino.

Implementación de aplicaciones Web:

  • No se requieren privilegios administrativos para implementar aplicaciones Web. Capacidad para agregar parámetros para cambiar el texto en archivos cuando se han implementado (por ejemplo, reemplazar una cadena de conexión al realizar la implementacion).
  • Integración con el IIS 7.0 Web Management Service (WMSVC) para la implementación remota por no administradores.
  • Los administradores de servidores tienen control detallado de las operaciones que pueden llevar a cabo y puede delegar tareas a no administradores.

Migración de servidor Web y sincronización:

  • Capacidad para sincronizar o migrar todo el servidor Web, un sitio o aplicación Web.
  • Sincroniza sólo los datos que han cambiado.
  • Capacidad para detectar dependencias faltantes durante la sincronización.
  • Recopila automáticamente contenido, configuración de IIS, certificados SSL y configuración de ASP.NET al sincronizar un sitio Web.
  • Además del administrador de IIS y Visual Studio 10, se pueden realizar tareas mediante la línea de comandos, cmdlets PowerShell o la API.

Si les gustó les dejo unos links útiles... Instalar el Web Deployment Tool : http://learn.iis.net/page.aspx/421/installing-the-web-deployment-tool/

Crear un paquete : http://learn.iis.net/page.aspx/514/export-a-package-through-iis-manager/

Instalar un paquete : http://learn.iis.net/page.aspx/515/import-a-package-through-iis-manager/

Espero les sea de utilidad, hasta la proxima!

Motor de búsqueda de Sharepoint 2007 y aplicación en WPF.

Hoy quiero compartir con ustedes cómo podemos configurar el motor de búsqueda de sharepoint y cómo podemos consumir el mismo. En artículos anteriores que estuve compartiendo en mi blog, Siderys Elite Software, estuve mostrando el poder el motor de búsqueda y su utilización desde los portales de Sharepoint. En esta ocasión vamos a consumir y buscar información en el índice, pero utilizando una aplicación externa y una WebPart personalizada para desplegar los resultados. Para este artículo que se basa en un WebCast que estuve dictando, la aplicación será una aplicación de escritorio confeccionada en WPF que mediante los Servicios Web de Sharepoint podemos buscar información dentro del motor. En la imagen 1 podemos observar la aplicación WPF que vamos a construir para consumir el motor de búsqueda de Sharepoint, como podrán observar, no solo tenemos acceso a la información almacenada por el índice, sino que también podemos acceder a los ámbitos creados y utilizarlos para realizar búsquedas especificas.

[Imagen 1]
clip_image002

En la imagen 2, vemos la Webpart personalizada que hemos creado para desplegar los resultados. Esta Webpart utiliza un componente que resuelve las consultas contra el motor de búsqueda de Sharepoint utilizando el modelo de objetos.

[Imagen 2]
clip_image004

Lo primero que tenemos que hacer es configurar nuestro motor de búsquedas para poder utilizar las dos aplicaciones, así que nos vamos a la administración central de Sharepoint y después a los servicios compartidos, donde encontraremos una sección específica para la configuración de nuestras búsquedas, como podemos ver en la imagen 3.

[Imagen 3]
clip_image006

Una vez accedamos a la página principal de nuestro Proveedor de servicios compartidos, recordar que podemos tener más de uno, vamos a seleccionar el link llamado “Configuración de Búsquedas” bajo la sección “Búsqueda” para acceder a la configuración del motor de búsqueda, como podemos ver en la imagen 4.

[Imagen 4]
clip_image008

Esta es la sección principal de configuración del motor de búsqueda para todo nuestro Proveedor de Servicios Compartidos y donde todos los portales que estén bajo el mismo tendrán acceso al contenido que se rastree. Tenemos la posibilidad de crear orígenes de contenido, reglas de rastreo, crear ámbitos de búsqueda y muchas cosas más, que como comente pueden verlas en artículos anteriores expuesto en el blog mencionado. Para este ejemplo en particular vamos ver cómo podemos crear un origen de contenido, hacia una carpeta en el sistema de archivos del servidor y que el motor nos rastree todo el contenido del mismo. Esto es vital cuando nos encontramos en un escenario que la información que queremos indexar no está en un sitio web de internet o portal de Sharepoint, si no que los documentos son almacenados en un directorio (Repositorio) y todos los usuarios acceden a los mismos a través del sistema de archivos. Todos sabemos lo tedioso que es, cuando tenemos que buscar un documento en ese repositorio y la única forma que tenemos de hacerlo, es ir documento por documento, viendo el nombre y así poder abrir el que estamos buscando. Con el uso de Sharepoint y su motor de búsquedas, podemos construir una solución que nos permita buscar información en distintos repositorios físicos en servidores y que el usuario pueda a través de una simple aplicación o incluso un portal de Sharepoint, buscar lo que necesita y acceder de forma inmediata a o los documentos que está buscando. Para configurar un origen de contenido, debemos seleccionar el link llamado “Orígenes de contenido y programaciones de rastreo” y así acceder a la página principal de configuración como podemos ver en la imagen 5.

[Imagen 5]
clip_image010

Lo próximo es crear un nuevo origen de contenido en nuestro motor de búsqueda y configurarlo, para lo cual debemos seleccionar el link “Nuevo origen de contenido” que se encuentra en la parte superior de la pantalla y accederemos a la página donde vamos a crear un origen nuevo como podemos ver en la imagen 6.

[Imagen 6]
clip_image012

En esta página debemos ingresar un nombre para el origen de contenido, mi recomendación es usar un nombre nemotécnico que nos permita identificarlo rápidamente, mas cuando podemos tener decenas de origines configurados en nuestro proveedor de servicios compartidos y si necesitamos modificar la configuración deberíamos tener acceso rápido. Una vez cargado el nombre, vamos a seleccionar el tipo de origen que estamos creando, como comente anteriormente, la idea es rastrear contenido en un directorio específico dentro de un servidor, por lo tanto seleccionamos la opción “Recursos Compartidos de Archivos”. Bien ahora tenemos que ingresar la ruta al directorio que queremos rastrear con el motor de búsqueda, así que en la sección direcciones de inicio, debemos ingresar la misma. Vale la pena destacar que cuando usamos el tipo de contenido que seleccionamos, las rutas que debemos cargar son rutas de red, por lo tanto el formato debe ser de la siguiente forma \\Server\Carpeta Compartida. Podemos ingresar todas las rutas que queremos que se rastreen, simplemente debemos colocar una por renglón y listo. En la próxima sección, vamos a configurar como se va a llevar el rastreo, es decir, si queremos que el mismo se realice solo dentro de la carpeta que hemos indicado en la sección anterior o que también se contemplen todas las subcarpetas que esta contenga. Acá va a depender el tipo de repositorio que tengan y si desean indexar todo o solo una parte del mismo. Por último vamos a configurar la frecuencia con la cual se llevara a cabo el rastreo y debemos indicar con qué frecuencia el motor deberá crear el índice de nuevo o realizara rastreo parciales. Acá también dependerán de lo que ustedes necesiten modelar y con la frecuencia que el repositorio de documentos cambia. Si es un repositorio que tiene una frecuencia de variación muy alta, entonces lo conveniente es que el motor realice indexaciones incrementales en periodos cortos, por ejemplo cada 5 minutos, una vez realizada toda la configuración, aceptamos los cambios para que se cree el nuevo origen de contenido como podemos ver en la imagen 7.

[Imagen 7]
clip_image014

Lo próximo y último que vamos hacer es, realizar un rastreo completo por primera vez de la nueva ubicación para que el motor nos pueda adicionar la información al indicie. Para realizar esto, la forma más sencilla es desplegar el menú contextual del nuevo origen de contenido creado y seleccionar la opción “Iniciar rastreo completo” como podemos ver en la imagen 8.

[Imagen 8]
clip_image016

Si queremos ver como se realizo el rastreo y si hubo algún error en el mismo, en la página principal de la configuración de las búsquedas podemos acceder al log y ver que se indexo y si hubo algún problema cuando se ejecuto el mismo.
Una vez configurado nuestro motor de búsqueda y el contenido del repositorio indexado, podemos proceder a trabajar con las aplicaciones mencionadas. La solución de ejemplo que cree cuenta con 5 proyectos, como podemos ver en la imagen 9 y que paso a detallar a continuación.

[Imagen 9]
clip_image018

Siderys.Blog.Search.Engine -> En este proyecto consumimos el motor de búsqueda de Sharepoint usando el modelos de objetos. Las clases necesarias para poder realizar búsquedas personalizadas se encuentran dentro del espacio de nombre llamado “Microsoft.Office.Server.Search y Microsoft.Office.Server.Search.Query” y pertenecen al ensamblado “Microsoft.Office.Server.Search” .

Siderys.Blog.Search.Engine.Resultado-> Este proyecto contiene una clase que mapea los propiedades devueltas en el esquema de resultado. La misma es instanciada y cargada para devolverse a las aplicaciones que estarán mostrando los resultados.

Siderys.Blog.Search.Engine.WebService-> Este proyecto realiza búsquedas en el índice creado por Sharepoint utilizando los servicios que se pueden consumir a través de search.asmx, servicio web nativo de Sharepoint.

Siderys.Blog.Search.UI.WebPart-> Este proyecto es la Webpart que usamos para mostrar los resultados de forma personalizada una vez que el usuario realiza un búsqueda en el portal de Sharepoint. La instalación de la Webpart debe realizarse como cualquier Webpart.

Siderys.Blog.Search.UI.WPF-> Este proyecto es la aplicación en WPF, aplicación de escritorio creada para buscar información en el índice de Sharepoint, para lo cual consume los métodos expuestos en el componente “Siderys.Blog.Search.Engine” especialmente creado para realizar búsquedas y el resultado le es devuelto en una colección de objetos “ObjetoResultado” del componente “Siderys.Blog.Search.Engine.Resultado”

Para las consultas basadas en el servicio Web usamos el método Web llamado “QueryEx”, puesto que el resultado de la ejecución de dicho método es devuelto en un DataSet, pero también podríamos usar el método “Query”, que nos devuelve un string. Ambos métodos reciben como parámetro un esquema particular que debemos armar para y que podemos ver a continuación en la Sección 1.

[Sección 1]

<QueryPacket xmlns='urn:Microsoft.Search.Query'> 
<Query>
<SupportedFormats>
<Format>urn:Microsoft.Search.Response.Document.Document</Format> </SupportedFormats>
<Context> <QueryText language='en-US' type='STRING'>SharePoint</QueryText> </Context>
</Query>
</QueryPacket>

Las consultas a través del modelo de objetos son usando el texto introducido por el usuario directamente y pasándoselo al motor para que realice la búsqueda dentro del índice. Para llevar a cabo esto, debemos usar la clase KeywordQuery, la que debemos instanciar y pasarle el nombre del proveedor de servicios compartidos donde queremos que se realice la búsqueda. Esta clase nos expone una propiedad llamada “QueryText” donde le debemos cargar el texto que deseamos buscar y el ámbito donde se llevara a cabo la búsqueda. Una vez que la propiedad está cargada debemos ejecutar el método llamado “Execute” y el cual nos devolverá un objeto del tipo “ResultTableCollection” donde estarán todos los resultados devueltos por el motor.En el código fuente adjunto al artículo encontraran todo el desarrollo descripto y solo deberán el nombre del proveedor de servicios compartido de la clase “ConsultaDOM” para que usen el que ustedes configuren. Quiero darles las gracias a Alvaro Affonso que me ayudo con la creación y animación de la aplicación WPF, puesto que él es el exporto en la materia, muchas gracias Alvaro.

Instalador clip_image001[6] Código Fuente clip_image001[7]

Fabián Imaz

Migrar una base de datos a SQL Azure
Hemos estado probando el proceso de migración de una base de datos local hacia SQL Azure. El resultado de dicho proceso lo hemos plasmado en un documento que nos gustaría compartir con uds. Pueden bajarlo de aquí.
 
Si bien es importante leer el documento ya que describe el proceso completo para hacer una migración de una base, además de como conectarse con Management Studio y algunos datos interesantes, les recomiendo bajarse una herramienta que está recién salida del horno (se encuentra en Alpha pero funciona muy bien): SQL Azure Migration Wizard
Espero les sea de utilidad, hasta la próxima!
1 - 10 Siguiente