Início > .NET, Project Server > Usando FluentPS

Usando FluentPS

fluentPS logo

FluentPS é uma biblioteca open source que tem o objetivo de simplificar o desenvolvimento de aplicações na plataforma Project Server 2010. Ela lembra bastante o FluentNHibernate, bem parecida com ORM (mapeamento objeto-relacional), provendo uma interface para o PSI (Project Server Interface).

No desenvolvimento de aplicações para Project Server sem usar o FluentPS, era preciso adicionar várias referências a WebServices que permitiam o acesso a informações dos arquivos de Projeto que estavam publicados no Portal PWA. Com o FluentPS, essa tarefa não é mais necessária. Toda a comunicação com o Project Server é feita através de objetos compilados na Plataforma .NET.

Agora que sabemos o que é o FluentPS vamos à prática!

Esse exemplo é bem simples e apenas recupera as informações referentes ao ID e Nome dos Projetos que estão publicados no Portal PWA.

Baixe as dlls do FluentPS do site http://fluentps.codeplex.com/. Para esse exemplo estou usando a versão 2.0.

Vamos criar um projeto Console com o nome de FluentPSTestApplication. Adicione as referências para as dlls do FluentPS que você acabou de baixar.

referências fluentps

Configure o a propriedade Target Framework do projeto para .NET Framework 3.5, clicando com o botão direito sobre o projeto e escolhendo a opção Properties.

Versão do .NET Framework

Agora, adicionamos a classe ProjectInfo que mapeará os campos referentes a um projeto do Project Server.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FluentPS.Attributes;
using FluentPS.Consts;

namespace FluentPSTestApplication
{
public class ProjectInfo
{
[PSEntityUidField(ColumnName=ProjectCustomFieldsColumnNames.PROJ_UID)]
public Guid ProjectUid { get; set; }

[PSEntityUidField(ColumnName=ProjectCustomFieldsColumnNames.PROJ_NAME)]
public string ProjectName { get; set; }
}
}

O atributo PSEntityUidField realiza o mapeamento de um campo padrão de um projeto. Nesse exemplo, os campos padrões são o ID e o Nome do Projeto.

Na classe Program, adicione o seguinte trecho de código:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FluentPS.Services.Impl;
using FluentSP.Services.Impl;
using FluentPS.WebSvcCustomFields;
using FluentPS.WebSvcLookupTable;

namespace FluentPSTestApplication
{
class Program
{
static void Main(string[] args)
{
var logService = new LogService();
var sessionService = new PSSessionService();
var psiContextService = new PsiContextService();
var psiSvcsFactory = new PSISvcsFactory(sessionService, psiContextService);

var lookupTableService = new PSLookupTableService(
logService,
psiSvcsFactory.CreateSvcClient());

var svcCustomFields = psiSvcsFactory.CreateSvcClient();
var svcLookupTable = psiSvcsFactory.CreateSvcClient();
var svcView = psiSvcsFactory.CreateSvcClient();

var environmentService = new EnvironmentService();
var customFieldService = new PSCustomFieldService(logService,
svcCustomFields,
svcView,
environmentService,
lookupTableService);

var projectsService = new PSProjectService(
logService,
lookupTableService,
customFieldService,
psiSvcsFactory.CreateSvcClient());
var projects = projectsService.GetAll();

foreach (var project in projects)
{
Console.WriteLine("Project Name: {0}", project.ProjectName);
Console.WriteLine("Project Uid: {0}", project.ProjectUid);
Console.WriteLine();
}

Console.ReadKey();
}
}
}

Basicamente, o que o código acima faz é instanciar os objetos do FluentPS que servem para mapear os WebServices do Project Server.

O comando abaixo, retorna todos os projetos publicados no Portal do PWA.

var projects = projectsService.GetAll();

Fácil, não? Se você quiser mais informações sobre o FluentPS, acesse o site http://www.projectserver2010blog.com. Exemplo concluído e até o próximo post.

Anúncios
Categorias:.NET, Project Server
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: