SharePoint Autenticación Basada en Notificaciones

SharePoint Foundation 2010 incorpora un nuevo modelo de autenticación que funciona con un sistema de identidad corporativa y que incluye Servicios de dominio de Active Directory, directorios basados en LDAP*, bases de datos específicas de aplicaciones y modelos de identidad centrados en usuarios.

*LADP (Lightweight Directory Acces Protocol). Es un protocolo de tipo cliente-servidor para acceder a un servicio de directorio. Se usó inicialmente como un Front-end o interfaz final para x.500, pero también puede usarse con servidores de directorio únicos y con otros tipos de servidores de directorio.

Servicios de Conectividad Empresarial en SharePoint Foundation 2010

Microsoft SharePoint Foundation 2010 incluye Servicios de conectividad empresarial de Microsoft.

¿Qué es esto?

Representan un conjunto de servicios y características que proporcionan un método para conectar soluciones de SharePoint a orígenes de datos externos y para definir los tipos de contenido externo que se basan en esos datos.

¿Pará qué se utilizan?

Los tipos de contenido permiten la presentación y la interacción con datos externos en listas de SharePoint conocidos como listas externas, y elementos web. Los Servicios de conectividad empresarial de Microsoft incluyen bases de datos de SQL Server, aplicaciones SAP, servicios web incluso servicios de Windows Communication Foundation (WCF), aplicaciones personalizadas y sitios web basados en SharePoint.

También se puede designar y crear soluciones que extienden las capacidades de colaboración de SharePoint para incluir datos profesionales externos y los procesos que se asocian con los datos.

¿Qué beneficios nos brindan?

Para todo lo mencionado utiliza un conjunto de interfaces estándares para proporcionar acceso a datos profesionales, sobre decir que como desarrolladores de soluciones, esto es un alivio ya que no es necesario aprender prácticas de programación que se apliquen a un sistema o adaptador específico de cada origen de datos externo.

Por último, los Servicios de conectividad empresarial de Microsoft proporcionan el entorno de tiempo de ejecución en el que se cargan, se integran y se excluyen soluciones que incluyen datos externos.

Para una mayor información al respecto los invito al sitio de TechNet sobre productos SharePoint, ahí se muestran dos ejemplos:
Servicio de Asistencia y Panel de Ventas, esto podría dar una mejor visión al respecto: http://technet.microsoft.com/es-es/library/ee661738.aspx

Muchos éxitos!!!

Crear un PDF de una página ASPX con itextsharp.dll

Como siempre, nos metemos a realizar cosas que desconocemos con el fin de aprender y mejorar, y de ganarse problemas gratuitos por que no pagan por resolverlos, sinembargo el conocimiento que nos queda es lo que nos empieza a dar un valor ante nuestros clientes y usuarios.

En este caso el requerimiento era crear un PDF de una página ASPX, espécíficamente e uno o de algún control de nuestro código.

En medio de muchas consultas y de encontrar alternativas gratuitas que no se adaptaban a los requerimientos, así como alternativas pagas que eran muy completas pero que estaban en el orden entre los 200 y  los 1000 dolares encontré en diferentes artículos referencia a una dll que aunque no es muy vistosa en principio, permite integrar muchos elementos para ser trabajados a la hora de imprimir parte o partes de una página en PDF.

Esta biblioteca se llama itextsharp que se puede encontrar en http://sourceforge.net/projects/itextsharp/, me ha parecido una excelente librería gratuita OpenSource que permite ser trabajada con .net económizando buena parte del trabajo, sinembargo sé que se puede realizar una aplicación a la medida dependiendo de las necesidades de cada uno.

Un ejemplo sencillo fué crear una aplicación en la que tengo una imágen, además tengo texto dentro de una etiqueta (Label), a esto le añadimos un botón que nos ejecutará el código correspondiente.

Al descargar itextsharp se incluye la referencia a los dll dentro de la aplicación: itextsharp.dll / itextsharp.xtra.dll.

Referencias iTextSharp

El código para este ejercicio es sencillo, sinembargo por lo alcanzado a leer, existen varias clases dentro de esta librería que permite realizar cosas más complejas e incluir estilos, imágenes, estructuras e hipervínculos entre otras cosas.

Para ver la funcionalidad, en mi caso creé una aplicación web desde Visual Studio y dentro de la página Default.aspx incluí una Label lblContenido llamada  que me incluyéndole un texto cualquiera :

<asp:Label ID=“lblContenido” runat=“server”>
Primero hay que comentar que para que un control, como el Image o el ImageBrush, pueda mostrar una imagen hay que crear un objeto que herede de la clase ImageSource y establecerle la propiedad Source del control.  El objeto que hereda de ImageSource y que comúnmente se utiliza para la carga de imágenes es el BitmapImage, al cual hay que pasarle un Uri con la ubicación de la imagen a utilizar.  Al establecer la propiedad Source de los controles en el XAML el objeto TypeConverter de ésta es el encargado de crear el BitmapImage con la Uri correspondiente.
</asp:Label>

En el código utilizaremos las referencias:
using System;
using System.Diagnostics;
using System.IO;
using System.Net;
using System.Text;
using System.Web;
using iTextSharp.text;
using iTextSharp.text.html.simpleparser;
using iTextSharp.text.pdf;

El botón de ejecución se llamó btnImprimir, el código asociado al evento clic de éste botón es:

protected void btnImprimir_Click(object sender, EventArgs e)
{
//System.Web.Exception opcional para manejar datos de respuesta HTTP a un cliente
Response.Clear();
Response.ContentType =“application/pdf”;
Response.Cache.SetCacheability(HttpCacheability.NoCache);

//Para crear una instancia de documento de iTextSharp con el tamaño de página y tamaño de margenes correspondientes
Document doc = new Document(PageSize.LETTER.Rotate(), 10, 10, 10, 10);
//La ruta en donde será guardado el pdf dentro del servidor
String path = this.Server.MapPath(“.”) + “Archivos\\MiArchivo.pdf”;

//Utilizamos System.IO para crear o sobreescribir el archivo si existe
FileStream file = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);

//iTextSharp para escribir en el documento PDF
PdfWriter.GetInstance(doc, file);
doc.Open();
//Agregamos  el texto que esta dentro de la etiqueta
     //Se pueden agregar varios solamente añadiendo varias sentencias doc.Add(…)    
doc.Add(new Paragraph(lblContenido.Text));
doc.Close();

Process.Start(path);
}

Al ejecutar el código anterior se crea el documento PDF dentro del la ruta que se especifico dentro del servidor, debemos recordar crear la carpeta Archivos dentro del directorio raiz de nuestra aplicación que es el lugar que estamos apuntándole dentro de la variable path.

Como se mencionó, esto solo exporta texto al PDF, seguiremos explorando en esta librería en la medida de las posibilidades y las necesidades, espero que esto les haya servido como base al respecto del tema.

Colección de datos con Silverlight y C#

Este es un ejemplo sencillo realizado sobre C# y utilizando la interfaz de Silverlight, el objetivo es cargar información en una colección y mostrarla en un DataGrid.

Para iniciar crearemos un nuevo proyecto tipo Aplicación de Silverlight.

Para este ejemplo creamos un formulario:

Dos TextBox (txtNombres, txtUsuario), un control PasswordBox (txtPass) un control DataPicker (dptNacimiento) y un botón (btnGuardar). Además agregaremos un control DataGrid (grdUsuarios).

El código XAML de nuestro formulario sería el siguiente:

<Grid x:Name=”LayoutRoot” Background=”White”>

        <ScrollViewer Height=”Auto” Width=”Auto”>

            <Canvas>

                <TextBox Canvas.Left=”155″ Canvas.Top=”25″ Height=”23″ Name=”txtNombres” Width=”150″ TabIndex=”0″ />

                <TextBox Canvas.Left=”155″ Canvas.Top=”54″ Height=”23″ Name=”txtUsuario” Width=”150″ TabIndex=”1″ />

                <PasswordBox Canvas.Left=”155″ Canvas.Top=”83″ Height=”23″ Name=”txtPass” Width=”150″ TabIndex=”2″ />

                <control:DatePicker Canvas.Left=”155″ Canvas.Top=”112″ Height=”23″ Name=”dtpNacimiento” Width=”150″ TabIndex=”3″ />

                <Button Canvas.Left=”300″ Canvas.Top=”149″ Content=”Registrar” Height=”23″ Name=”btnGuardar” Width=”75″ Click=”btnGuardar_Click” />

                <sdk:DataGrid AutoGenerateColumns=”True” Canvas.Left=”6″ Canvas.Top=”198″ Height=”Auto” Name=”grdUsuarios” Width=”Auto” />

                <TextBlock Canvas.Left=”29″ Canvas.Top=”25″ Height=”28″ Name=”label1″ Width=”120″ Text=”Nombres Completos:” />

                <TextBlock Canvas.Left=”29″ Canvas.Top=”54″ Height=”28″ Name=”label2″ Width=”120″ Text=”Nombre Usuario:” />

                <TextBlock Canvas.Left=”29″ Canvas.Top=”83″ Height=”28″ Name=”label3″ Width=”120″ Text=”Password:” />

                <TextBlock Canvas.Left=”29″ Canvas.Top=”112″ Height=”28″ Name=”label4″ Width=”120″ Text=”Fecha Nacimiento:” />

            </Canvas>           

        </ScrollViewer>

</Grid>

Para que nos funcione sin inconvenientes el DataGrid y el DatePicker debemos agregar dos referencias dentro de nuestro código XAML:

xmlns:sdk=”clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data”

        xmlns:control=”clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls”

Por otra parte crearemos la clase Usuarios (Usuarios.cs) con la que podamos trabajar una colección de objetos.

public class Usuarios : Collection<Usuarios>

{
   public String Nombres { get; set; }

    public String Usuario { get; set;}

    public String Pass { get; set; }

    public DateTime Nacimiento { get; set;}

    public DateTimeIngreso { get; set;}

}

Al final en el evento clic del botón agregamos el código que nos permite llenar nuestra colección y lista en el DataGrid los datos que vamos agregando.

//Creamos una lista de nuestra clase Usuarios

List<Usuarios>
lUsr = new List<Usuarios>();

 private void btnGuardar_Click(object sender, RoutedEventArgs e)

{

       //Limpiamos el datagrid

      grdUsuarios.ItemsSource = null;      

       //Creamos el objeto oUsr (instancia de nuestra clase Usuarios)

      Usuarios oUsr = new Usuarios(); 

       //Asignamos los valores correspondientes al objeto que hemos creado

      oUsr.Nombres = txtNombres.Text;

      oUsr.Usuario = txtUsuario.Text;

      oUsr.Pass = txtPass.Password;

      oUsr.Nacimiento = Convert.ToDateTime(dtpNacimiento.Text);

      oUsr.Ingreso = DateTime.Now; 

       //Agregamos el nuevo objeto a nuestra colección

      lUsr.Add(oUsr); 

       //Cargamos el DataGrid con la colección de datos

      grdUsuarios.ItemsSource = lUsr;

 }

Al ejecutarlo podremos observar que por cada dato que ingresamos va apareciendo en nuestro DataGrid:

Esto no reemplaza el almacenamiento de los datos, pero es un ejercicio que nos ayuda a comprender un poco el manejo y la construcción de colecciones integrándolo a Silverlight.

A %d blogueros les gusta esto: