Forçar atualização do Warehouse do Report Server

setembro 30, 2008

Um detalhe que notamos somente quando temos isso como problema é que os reports do TFS não são gerados em real time. Isso acontece porque a geração dos relatórios é uma tarefa custosa para o servidor e diminuiria sua performance.

Por padrão, o warehouse é atualizado de hora em hora. Porém, existem duas alternativas para “driblar” isto quando é caracterizado como problema.

Vamos imaginar que você gerencie um projeto de grande porte, que tem alimentação de dados quase que momentâneamente. Seu diretor precisa urgentemente de relatórios que mostrem a situação do projeto de forma mais atualizada possível. Seu report server foi atualizado há 40 minutos atrás e, até então, você precisaria de mais 20 para esperar a próxima atualização. Neste cenário, usaríamos a Solução 1: Requisitar manualmente a atualização do Warehouse.

Assim:

- Acesse http://nomedoserver:8080/Warehouse/v1.0/Warehousecontroller.asmx;

- Clique no método “Run” e depois em “Invoke”.

Vai retornar true se a atualização ocorreu com sucesso. Se retornar false… :-(

Agora, se seu Diretor costuma fazer isso com frequencia, você provavelmente vai preferir a Solução 2: Modificar o intervalo de tempo entre atualizações. Desta forma:

- Acesse: http://nomedoserver:8080/Warehouse/v1.0/Warehousecontroller.asmx;

- Clique em “ChangeSetting”;

- Em “settingID” coloque “RunIntervalSeconds”;

- Em “newValue” especifique o novo intervalo, em Segundos. Por exemplo, para mudar o intervalo para 30 minutos, insira 1800.

Se a mudança ocorreu com sucesso, retornará uma mensagem informando isso.

* A não recomendação da solução 2, como já comentei no início do artigo, se dá ao fato de que atualizações mais frequentes do warehouse vão impactar na performance do servidor, já que consome recursos razoáveis quando está executando esta ação.

Abraço!


Regras Personalizadas no FxCop – Parte 2

setembro 25, 2008

Olá pessoal,

Na parte 1 falei sobre o desenvolvimento de uma regra personalizada no FxCop. As possibilidades são muitas, até o momento eu desenvolvi duas regras, uma para validar a nomenclatura de variáveis locais nos métodos, pois a regra que vem com o FxCop valida apenas membros (métodos, propriedades, etc.) públicos, e outra regra que verifica se o programador chama o método Dispose dos objetos que implementam a interface IDisposable.

Outra coisa boa é que a mesma assembly pode ser utilizada tanto no FxCop quanto no Code Analysis do VS Team System. Nesse caso basta publicá-la na pasta C:\Arquivos de programas\Microsoft Visual Studio 9.0\Team Tools\Static Analysis Tools\FxCop\Rules.

Bom regra desenvolvida e testada, agora vem a pergunta: como distribuir a assembly na pasta Rules em todas as estações dos desenvolvedores? Vou ter que sair copiando a assembly máquina por máquina toda vez que houver uma atualização? Infelizmente nem o FxCop nem o Code Analysis do VSTS tem uma solução pronta e automatizada para isso. E o pior, em minhas buscas pela net não encontrei muita orientação sobre esse problema =/

Depois de quebrar um pouco a cabeça encontrei uma solução razoável: colocar a assembly da sua regra em uma pasta na rede. Depois é só apontar o FxCop ou o VSTS para buscarem a regra da rede, assim você precisará atualizar a assembly em apenas um local.

Para essa solução funcionar, indepedente de você utilizar o FxCop ou o VSTS, primeiro altere a configuração de segurança do Framework, senão ele irá bloquear a execução de qualquer assembly a partir da rede:

1 – Vá até Painel de controle > Ferramentas administrativas > Microsoft .NET Framework 2.0 Configuration;
2 – Entre nas propriedades do item My Computer > Runtime Security Policy > Machine > Code Groups > All_Code > LocalIntranet_Zone;
3 – Clique na aba Permission Set, provavelmente estará como LocalIntranet, troque para FullTrust.

Feito isso, no projeto do FxCop você irá até aba Rules, botão direito Add Rules, e adicione a assembly da sua regra a partir de uma pasta na rede.

Se você utiliza o VSTS, ele permite apontar apenas a pasta inteira das Rules para rede, então copie a pasta com as regras pré-existentes (C:\Arquivos de programas\Microsoft Visual Studio 9.0\Team Tools\Static Analysis Tools\FxCop\Rules) mais a sua para a rede e efetue o apontamento no registro:

1 – Abra o regedit e vá até a chave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\Setup\EDev;
2 – No registro FxCopDir informe o diretório das regras na rede.

Pronto, agora você tem uma distribuição centralizada das suas regras =)

Abraços!


GameFest Brasil: Eu Fui!

setembro 20, 2008

Olá galera,

Hoje rolou o XNA GameFest Brasil na UNIP da Vergueiro. Eu estive lá e presenciei um evento show de bola, com destaques para as palestras de Emerson Facunte na parte da manhã e Fábio Galuppo na parte da tarde.

O evento levou todo o público a viajar pelo mundo dos games. As palestras eram divididas por nível de conhecimento, onde o participante poderia escolher qual era o seu; havia um lounge com 4 XBOX disponíveis para uso do público (com PGR 4, Forza 2, Mass Effect e Guitar Hero 3). Eu, claro, abusei um pouco do console com o GH :) . Havia também um espaço com computadores mostrando jogos desenvolvidos pela comunidade, muito legal.

Alguns conteúdos do evento ficarão disponíveis no seu próprio site: http://www.gamefestbrasil.net/

E sobre a palestra que eu curti muito, a do Galuppo, o conteúdo ficará no blog dele, em http://fabiogaluppo.spaces.live.com/

Abraço


Revista Codificando.NET – Edição 8

setembro 18, 2008

Fala pessoal.

Ja está disponível a 8ª edição da Revista “Codificando.Net e-Magazine”. A revista, pra quem ainda não conhece, trata de assuntos diretamente ligados a Desenvolvimento de Software na plataforma Microsoft. As edições passadas estão, todas, disponíveis para download gratuito. É mais uma forma do Codificando.NET colaborar com a comunidade Microsoft em todo o Brasil.

Essa edição deixou-nos muito contentes e satisfeitos, pois conta com um super artigo tratando de Visual Studio Team System, escrito pelo Ricardo Serradas, um dos editores aqui do EnterpriseBrothers.

Matérias:
- Entrevista sobre Sql Server
- DMV no Sql Server 2005
- XNA Framework
- Lamda Expressions
- VSTS. Experimente, vale a pena (Artigo do Ricardo Serradas)
- Plataforma Windows Live
- Primeiros passos com Visual Studio Team System
- DMF no Sql Server 2008

Baixem, avaliem e deixem a opinião sobre a revista la no site. Ela é muito importante para o bom conteúdo teórico-prático das próximas edições.

Outra iniciativa interessantíssima do Codificando.NET são os PodCasts. Todos gravados com renomados profissionais tratando de assuntos da atualidade e com dícas incríveis para o nosso dia-a-dia. Pessoal, vale a pena conferir.

Codificando e-Magazine: http://www.codificandomagazine.net/revista
Codificando PodCast: http://www.codificandomagazine.net/podcast

Parabéns a toda equipe do Codificando.NET, e parabéns ao Serradas pelo excelente artigo.

Há, e não se esqueçam que nesse sábado é o XNA Game Fest Brasil 2008. Não faltem!

Bons estudos.

Abraços


Regras Personalizadas no FxCop – Parte 1

setembro 16, 2008

Olá,

Muitas pessoas imaginam que o FxCop se restringe a validar o seu código seguindo apenas as regras enviadas junto com o pacote de instalação. Isso é um desperdício do poder dessa ferramenta!

Cada conjunto de regras é armazenado em uma assembly, dentro da pasta Rules, por exemplo:

C:\Arquivos de programas\Microsoft FxCop 1.36\Rules\NamingRules.dll

Essa assembly contém as regras que validam a nomenclatura do seu código. Ou seja, se você escrever a sua dll em .NET (utilizando o SDK do FxCop) e colocá-la na pasta Rules, você conseguirá validar o seu código com as suas regras personalizadas.

Bom falar é fácil, mas atualmente temos dois grandes problemas para desenvolver suas próprias regras:

1 – A SDK do FxCop é liberada para uso, porém ainda não tem documentação nem suporte oficial por parte da Microsoft.

2 – As bibliotecas não analisam o código fonte, e sim a IL (Intermediary Language), isso significa que você tem que entender como a IL funciona para analisá-la.

Quanto a falta de documentação oficial, podemos contornar buscando informações na net. Segue abaixo o link de um PDF bem completo que fala sobre a SDK e o forúm do FxCop no MSDN:

http://www.binarycoder.net/fxcop/pdf/fxcop.pdf
http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=98&SiteID=1

Quanto a entender sobre a estrutura da IL e como o código fonte é transformado após a compilação, infelizmente não há muita coisa na net =/. A solução é gerar alguns códigos simples e estudar como eles ficam após compilados em uma ferramenta chamada Introspector. O Introspector irá carregar sua assembly no formato de uma árvore de objetos, que foram criados para tornar mais fácil a análise e navegação através da IL. Isso irá facilitar e muito as tentativas e erros durante o desenvolvimento da sua regra personalizada.

Durante o meu estudo com o Introspector descubri algumas coisas interessantes, como por exemplo o using e o foreach do C#, após a compilação, são transformados em um bloco try/finally com uma chamada ao Dispose no finally =P

O PDF acima contém um link para o download do Introspector.

Continua na parte 2….abraços!


Conhecendo LINQ

setembro 11, 2008

Tempos atrás, comecei um estudo sobre uma feature nova e muito importante do framework 3.5: LINQ.

Do pouco que usei, gostei bastante dos benefícios que ele traz quanto a agilidade e praticidade no desenvolvimento de aplicações.

Pra quem não sabe, LINQ quer dizer Language Integrated Query, uma nova tecnologia que acompanha o framework 3.5.

LINQ não serve somente para fazer queries em cima de dados provindos de bancos de dados. Com ele, é possível realizar consultas em coleções.

Boas referências de leitura são:

http://www.hookedonlinq.com/

http://msdn.microsoft.com/en-us/netframework/aa904594.aspx

Edit 1:

Legal postar minha primeira experiência com LINQ, num dia de estudos. Abaixo, o link para download do projeto:

http://www.mediafire.com/?fmm1w0sgdzz

Abraço


VSTS vs CVS – Vamos lá então!

setembro 11, 2008

Vi que muitas buscas que trouxeram nossos visitantes até nosso blog são compostas pela seguinte combinação de palavras: “team foundation server”, “vantagens” e “cvs”. Suponho que o nobre visitante esteja procurando por algum lugar que comente a respeito das diferenças entre o Team Foundation Server e o CVS.

Esse tipo de comparação não é válida, visto que cada uma das aplicações citadas tem uma função diferente em desenvolvimento de software. O mais adequado seria procurar por vantagens do Team Foundation Server Version Control (TFVC) e o CVS.

O CVS nada mais é do que sistema para Controle de Versões de Código, gratuíto, que pode ser consumido através de diversos softwares que se conectam a um servidor CVS. Não posso dizer com certeza que ele não pode ser integrado ao Visual Studio, mas nunca vi em lugar algum afirmativas de que isso acontece.

Ele traz funcionalidades padrões como check-out, check-in, lock, branch, label, compare…

Já o Team Foundation Server é o coração da plataforma Team System, uma ferramenta para gerenciamento de SDLC (Software Development Life Cycle – Ciclo de Vida de Desenvolvimento de Software). Com o VSTS é possível ter controle e visão muito, mas muito, melhor do projeto.

Cito aqui algumas funcionalidades da plataforma: 

  • Rastreabilidade de itens de trabalho;
  • Automatização e Gerenciamentos de Builds;
  • Políticas de Check-in;
  • Relatórios On-Demand e online;
  • E claro, um controlador de versões de código, o TFVC, que comentei acima.

Ele é um controlador de versões de software que foi totalmente reescrito desde o Visual Source Safe e traz novas features, além dos clássicos check-out e check-in, como:

  • Melhorias no merge e multiple check-out;
  • Shelving;
  • Annotate;
  • Políticas de Check-in;
  • Entre outros…

Ainda assim, se você quer mesmo fazer uma pesquisa para comparar o CVS ao VSTS, prepare-se para se interessar e lutar pela implantação do Team System na sua empresa.

Experimente por aqui: http://enterprisebrothers.wordpress.com/2008/09/02/porque-usar-o-team-system/ 

;-)

Um abraço


MSDN Experience

setembro 8, 2008

Fala Pessoal,

Em conversa informal com amigos desenvolvedores pude perceber o quanto grande maioria possui uma falta de conhecimento absurda do que a Microsoft e as comunidades disponibilizam de informação referente aos produtos com a qual trabalhamos. Pior ainda, poucas pessoas fazem parte ativamente de alguma comunidade ou grupo de usuários. Incrível!

Um exemplo claro dessa falta de conhecimento é a “Academia MSDN Experience”. Pra quem ainda não conhece, a idéia do projeto é disponibilizar vídeos para a comunidade das principais tecnologias ligadas ao desenvolvimento na plataforma Microsoft. Há, claro, os vídeos são gravados na grande maioria por MVP’s, MCT’s e MSP’s, ou seja, o conteúdo teórico e prático dispensa maiores comentários.

Eu recomendo fortemente as 3 academias disponíveis: Web Development, SQL Server e Visual Studio Team System.

Essa, dentre outras tantas, é mais uma forma que a Microsoft se preocupa de verdade com a qualidade de informação passada a comunidade. Informação sem qualidade não vale de muito não é?

Maiores detalhes sobre as academias abaixo:

Visual Studio Team System: http://www.msdnbrasil.com.br/experience/vsts/Home.aspx
Palestrantes:
Alexandre Tarifa
Carlos Hulot
Fábio Câmara
Igor Abade Leite
Luciano Caixeta Moreira
Mauro Santana
Patrícia Mantovani Capani
Péricles Rocha
Ramon Durães
Thiago Cruz

SQL Server: http://www.msdnbrasil.com.br/experience/sqlserver/Home.aspx
Palestrantes:
Alexandre Ricardo Nardi
Daniel P. Camillo
Danilo Medeiros
Diego Nogare
Gustavo Maia Aguiar
Leandro Oliveira
Ioannis Xylaras
Luciano Caixeta Moreira
Luiz Felipe Pimenta
Péricles Rocha

Web Development: https://www.msdnbrasil.com.br/experience/WebAcademy/Home.aspx
Palestrantes:
Bruno Sonnino
Cezar Guimarães
Daniel Ferreira
Diego Neufert
Marcelo D’Avila de Pauli
Renato Guimarães
Rogério Cordeiro
Thiago Cruz
Weber Ress

Bom estudo!

Abraços


Começando com o FxCop

setembro 3, 2008

Oi Pessoal,

Irei compartilhar aqui algumas experiências que tive com o FxCop no trabalho.

FxCop é um utilitário de validação de código desenvolvido pela Microsoft e disponibilizado gratuitamente para download. Ele funciona analisando a IL (Intermediate Language) gerada pela compilação do .NET, e não os arquivos texto do código fonte. Isso traz a vantagem que ele pode analisar códigos produzidos por qualquer linguagem do .NET, e como desvantagem não é possivel validar coisas que não vão para a IL, como regions e diretivas de pré-compilação por exemplo.

Basicamente para o FxCop validar o seu código você deve escolher qual as assemblies que vão ser validadas (não projetos nem .cs, pois ele valida a IL), e escolher qual das regras de validação vão ser aplicadas. Você pode criar suas próprias regras, mas isso é assunto pra outro post =P

Confesso que minha primeira impressão com o FxCop não foi boa, por falta de conhecimento achei a validação realizada por ele muito intrusiva e falha, mas após um pouco de estudo vi que estava enganado =).

Por exemplo: Existe uma regra chamada “Do not raise reserved exception types” (não lance tipos de exceção reservados), que vai alarmar com qualquer thrown new Exception() que você colocar no meio do seu código. Quando vi isso logo pensei “que bobagem, pra que isso? quem é esse FxCop pra dizer que exceções eu devo lançar? rs”. O FxCop pede para você criar uma Exception personalizada na sua aplicação e lançar apenas essa exceção. O motivo disso é simples, se sua aplicação ficar disparando exceções do tipo Exception por todos os lados, quando você for criar um teste unitário que valide se o código está disparando exceções conforme o esperado, isso dificulta identificar se a exceção disparada veio reamente de um thrown seu ou de dentro do Framework por outros motivos.

Claro que nem todas as regras que vem com o FxCop podem se aplicar a seu projeto, existem algumas que validam Spelling (ortografia), logo se você colocar nome dos métodos em português ele vai achar que estão escritos errados rs

Cabe a você antes de começar a validação, avaliar quais regras utilizar, mas pelo que pude avaliar cerca de 90% das regras são uteis para a maioria dos projetos.

Bom isso é só o começo, logo mais postarei sobre integração do FxCop com o Visual Studio, desenvolvimento de regras personalizadas, entre outras coisas =)

Abraços!


2º XNA Game Fest

setembro 2, 2008

Fala pessoal,

Pelo segundo ano o pessoal do Codificando e SharpGames irão organizar o 2º XNA Game Fest. No primeiro ano eu pude conferir pessoalmente, mais a nível de curiosidade porque desenvolvimento de jogos “ainda” não é o meu forte (a gente nunca sabe não é?). Mas fiquei muito surpreso com o nível das palestras, tanto as teóricas quanto as famosas “mão-na-massa” onde foi desenvolvido um protótipo. Excelente!

Esse ano promete de novo. Inscreva-se aqui.

HotSite: http://www.gamefestbrasil.net

Organização: Codificando e SharpGames

Apoio: Ineta Brasil e Microsoft

Saiba mais sobre XNA aqui.

Abraços


Seguir

Obtenha todo post novo entregue na sua caixa de entrada.