Community Server 2007 API

¿Necesitas desarrollar una aplicación stand-alone que invoque las APIs de una instalación de  Community Server 2007 (CS2007)? Aquí te presento un procedimiento básico para lograrlo.

Procedimiento:

  1. Crear proyecto en Visual Studio 2005 (VS2005)
  2. Copiar archivos de CS2007
  3. Establecer referencias y codificación

Crear proyecto en VS2005

En este punto lo que tienes que hacer es crear el proyecto en Visual Studio, puede ser una aplicación Windows o una aplicación de consola.

Copiar archivos de CS2007

Lo siguiente que tienes que hacer es configurar la aplicación para poder invocar las APIs, conectarte a la base de datos y establecer el contexto de trabajo. Para ello, lo que debes de hacer es copiar los siguientes archivos de la instalación de CS2007 a tu aplicación actual:

Del directorio {CS2007Home}bin, al directorio de tu aplicación {AppHome}bin:

  • CommunityServer.Components.DLL
  • CommunityServer.SqlDataProvider.dll
  • CommunityServer.ASPNet20MemberRole.dll
  • Telligent.Components.DLL
  • Telligent.MailGateway.Common.DLL

Nota: Estos archivos pueden copiarse, o bien, se puede agregar la referencia a ellos desde su directorio de instalación.

Del directorio {CS2007Home} al directorio raíz de tu aplicación {AppHome}:

  • communityserver.config
  • connectionStrings.config
  • Web.config –> Este archivo debe renombrarse para tener el nombre de tu aplicación ejecutable más la extensión .config. Ej.  {AppName}.exe.config

 También es necesario agregar la referencia a System.Web, este espacio de nombres nos permitirá establecer el contexto de la aplicación.

Finalmente, hay que copiar los archivos de configuración al directorio de salida (OutDir) de la aplicación; esto lo puedes hacer modificando la opción Post-build event command line en las propiedades Build Events del proyecto:

xcopy «$(ProjectDir)*.config»  «$(ProjectDir)$(OutDir)» /y

Establecer referencias y codificación

Para este punto primero debes agregar la referencia al siguiente espacio de nombres de las APIs de CS2007:

using CommunityServer.Components;

 La programación de la aplicación dependerá de los cambios que quieras hacer en tu instalación de CS2007. El siguiente código es un ejemplo sencillo de cómo agregar un nuevo usuario a CS2007:

namespace Migration

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            try

            {

                string status = string.Empty;

 

                // Inicializa contexto por default

                CSContext ctx = CommunityServer.Components.CSContext.Create(1000);

 

                // Cambiamos al usuario admin de CS

                ctx.User = CommunityServer.Users.GetUser(2100,false);

 

                // Creamos objeto usuario que será agregado

                User user = new User(«Román»);

                user.Email = «romanlozano@hotmail.com»;

                user.Password = «Pa$$w0rd»;

 

                // Importante poner que no se trata de un usuario anónimo ya que por default,

                // CS2007 maneja a los usuarios como anónimos.

                user.IsAnonymous = false;

 

                // Manda crear el usuario e indicamos si si quiere enviar correo de notifiación,

                // en este caso no enviamos el correo

                switch (CommunityServer.Users.Create(user, false))

                {

                    case CreateUserStatus.Created:

                        status = «Usuario creado!»;

                        break;

                    case CreateUserStatus.DisallowedUsername:

                        status = «Nombre de usuario inválido!»;

                        break;

                    case CreateUserStatus.DuplicateUsername:

                        status = «El nombre de usuario ya existe!»;

                        break;

                }

            }

            catch (Exception ex)

            {

                System.Console.Out.WriteLine(ex.Message);

            }

        }

    }

}

Más información

Para una mayor referencia del tema te sugiero que visites la página de Community Server 2007, y en especial las secciones de foros y documentación.

Bytes…

 

 

 


Comentarios

Deja una respuesta