ago
10
2010
2

Microsoft Dynamics CRM Named a Leader by Two Independent Research Firms

Esta matéria foi enviada pelo meu amigo Lucas Santa Cruz. Mais duas pesquisas independentes posicionam o Dynamics CRM entre as aplicações líderes de mercado.

http://www.microsoft.com/Presspass/press/2010/aug10/08-04DynamicsCRMPR.mspx

ago
08
2010
0

Minha vida online migrada do Live para o Gmail

Há pouco tempo atrás unifiquei todos os e-mails e contatos online e de celular no Live, pois usando o Windows Mobile era a escolha óbvia: tudo era muito integrado e realmente manter-se conectado era muito fácil.

O problema era o celular, que era uma m#$%@

Agora adquiri um celular com o SO Android 2.1, e não fazia mais sentido ficar na Live, tive que migrar tudo para os serviços do Google.Mudei inclusive de número, mas isto foi culpa da Vivo, não da Live :)

Os serviços do Google podem ser mais simples do que os da Live (na minha opinião), mas são muito mais integrados. E o Android, bem, seria ofensa compará-lo ao Windows Mobile.

A Microsoft precisa fazer um bom lançamento do seu novo Windows Phone.

Bom, é isso ai!. Continuo um cara online e conectado, mas agora mais feliz.

mai
29
2010
0

O coração do Google

O artigo em anexo apresenta como funciona o processo de atualização do motor de pesquisa do Google. O que impressiona  mais do que a tecnologia é o uso de processos de inovação extremamente inteligentes e ágeis.

Busca_Afiada

Written by Ricardo de Souza in: Geral | Tags:,
mai
29
2010
0

5 dicas para falar bem

O especialista em oratória Reinaldo Polito dá cinco conselhos para a boa comunicação na empresa. Artigo muito legal do site da Época Negócios.

http://epocanegocios.globo.com/Revista/Common/0,,EMI143912-16714,00-DICAS+PARA+FALAR+BEM.html

Written by Ricardo de Souza in: Geral | Tags:
mai
02
2010
1

A internet está nos tornando superficiais?

Nicholas Carr afirma que o caos de informações na internet está nos tornando desatentos e superficiais. Outros alegam que a internet é nossa expansão de memória: não precisamos mais armazenar tudo na cabeça pois o conteúdo pode ser localizado rapidamente através de palavras chave.

Acredito que o excesso de informações nos dias de hoje é realmente um problema sério, e que o ser humano está chegando no limite da sua capacidade de processamento de informações. Logo precisaremos de suporte tecnologico para filtrar e tratar tudo o que chega á nós, e acreditem, já existem equipamentos experimentais que fazem isto!Enquanto não podemos comprá-los no ebay por U$100,00, teremos que nos educar a obter da internet apenas o que é necessário.É uma revolução sem precedentes na história humana: antes nos esforçavamos para obter conhecimento e agora precisamos filtrar o conhecimento que é relevante.

Em anexo segue um artigo extraído da revista Época Negócios deste mês que aprofunda um pouco essa discussão.

Artigo: Internet e a Mente

 

abraços!

Written by Ricardo de Souza in: Geral | Tags:,
mai
02
2010
1

Artigo Interessante Sobre Gerenciamento Ágil de Projeto

 O PMI-SP inaugurou recentemente uma nova seção em sua newsletter chamada "Tendências em Gerenciamento de Projetos". Na última edição, foi publicado um artigo muito interessante sobre a definição em torno da frase gerenciamento ágil de projeto, com um resgate das raízes da criação do manifesto ágil.

Leitura recomendada!

http://www.pmisp.org.br/enews/edicao1004/tendencias.asp

jan
17
2010
2

Uma semana utilizando o Office 2010…

… e até agora tudo bem. A melhora na interface e novas funcionalidades estão bem legais. Só não achei que ele está tão rápido assim…

Written by Ricardo de Souza in: Geral | Tags:,
jan
16
2010
4

Dynamics CRM 5.0: O que haverá de novo? (Parte 3)

Neste último artigo irei apresentar as melhorias e funcionalidades restantes, além de falar um pouco sobre o que gostaria de ver (e ainda não vi) no Dynamics CRM 5.0:

4-     Solutions

Todas as customizações são realizadas a partir de uma Solution. É possível customizar a solução padrão (CRM out of box) ou criar uma própria. Para fazê-lo  é preciso criar um publisher. O prefixo das customizações é agora relacionado ao publisher.

 

As soluções podem ser protegidas, o que significa que edições nas suas customizações não podem ser realizadas. Soluções podem ser construídas a partir de outras, o que cria uma dependência entre elas. O interessante é que o processo de exportação de uma solução extrai apenas o delta (diferença) das customizações. Exemplo: Ao  exportar uma solução criada a partir da padrão, você obtem apenas as suas alterações, o que reduz significativamente o tempo do processo.

 

O que fará parte de uma solução? Basicamente tudo que pode ser customizado no CRM, com exceção do que estiver na pasta ISV.Planeja-se também a construção de soluções prograticamente através do Visual Studio.

 

Alguns pontos importantes ainda não estão definidos, como por exemplo o nível de proteção no formulário(provavelmente será a nível de aba ou seção) , exibições e entidades, mas a adoção do conceito de soluções vai permitir maior flexibilidade e controle em cenários onde existem várias frentes de desenvolvimento atuando em paralelo.Também possibilitará a o deploy de customizações de maneira mais eficiente.

 

Existe um planejamento para disponibilizar um controle de versionamento e de atualizações para as soluções, além de mecanismos de propriedade intelectual. Uma possibilidade é permitir que parceiros publiquem suas soluções no Market Place / PinPoint para download e instalação automáticos pelo cliente.

 

 

O que ainda pode-se esperar do CRM 5?

 

A Microsoft trabalha para incluir as seguintes melhorias e/ou funcionalidades no produto até o seu lançamento:

 

- Múltiplos formulários por entidade, baseado em direito de acesso, status dos registros ou ambos;

- Segurança em nível de atributo;

- Pesquisa Global;

- Melhorias no Outlook Client;

- Melhorias no Modelo da Aplicação (Application Model);

- Suporte ao Windows Communication Foundation (WCF);

- Melhorias no gerenciamento de endereços/

- Maior extensibilidade utilizando client side code (ISV Control);

- Relationship Explorer / Organization Chart.

 

 

O que ainda não foi visto (e que gostaríamos de ver) no CRM 5?

- Gerenciamento de Configurações do Usuário: O usuário possuirá muito mais recursos para customizar a aplicação, mas não existe nenhuma ferramenta de gerenciamento centralizado dessas configurações, como por exemplo a criação, manutenção e deploy de um conjunto de preferências, exibições e dados locais que pudessem ser associados à um ou a um grupo de usuários. Em ambientes com muitos usuários, em especial aqueles com Outlook Client for Laptops, isto tem sido uma fonte enorme de problemas e custos tanto para os clientes quanto para os parceiros.

 

- Workflows: Nada foi falado sobre os workflows, e isto é de se estranhar. Ou a mudança será profunda e está sendo mantida em segredo ou não será mudado nada. Já é um consenso de que o Serviço Assíncrono ficou com atribuições demais na versão 4.0 e que isto atrapalha a escalabilidade da aplicação, já que não é possível por exemplo, alocar multiplas threads ou determinar prioridade para a execução dos serviços considerados assíncronos (workflows, detecção de duplicatas, importação, etc.).E agora com as atividades recorrentes e a integração com o Sharepoint sob a sua guarda, a pergunta é o que podemos esperar?  As melhorias disponibilizadas na versão 4.0 fizeram com que todos nós mergulhassemos de cabeça na construção de complexos workflows, e muitos pagaram um preço alto devido aos problemas de desempenho causados. É preciso garantia de escalabilidade e funcionalidade sob pena de o recurso passar a ser desprezado pelos usuários e parceiros, o que seria uma pena. 

 

Segue a minha wishlist para os workflows na versão 5.0:

1-     Melhor tratamento de erro: muitas das mensagens de erro não permitem que você descubra a causa do problema. Um log com a descrição do erro na plataforma não seria má idéia;

2-     Suporte a transações: o proprietário do workflow poderia informar se no caso de uma falha, ocorreria um rollback das ações;

3-     Maior opções de operações aritméticas e de data: cálculo em dias úteis e divisão, dentre outros;

4-     Melhorias na ferramenta de criação: possibilidade de mover branches ou de alterar o tipo de condicional (de wait para if, por exemplo)

5-     Maior escalabilidade para o Serviço Assíncrono: possibilidade de disponibilizar multiplas threads, definir priopridade de processamento, alocação de memória e de serviço assíncrono (workflows teriam prioridade sobre os outros serviços, por exemplo);

6-     Workflow Síncrono: parece bobagem mas pensem em um tipo de workflow que atualize um registro aberto sem ter que realizar reload ou que ainda disponibilizasse registros automaticamente para o usuário. Você também poderia chamá-lo de Script Flow, Script Tool ou qualquer nome legal que encontrasse.

 

 

Bom, isto é tudo (ufa!). Assim que novo material surgir ou que a versão CTP seja disponibilizada, irei atualizá-los com as novidades.

 

Abraços,

jan
16
2010
2

Dynamics CRM 5.0: O que haverá de novo? (Parte 2)

Continuando com a série de artigos sobre o Dynamics CRM 5.0, Irei apresentar os seguintes conjuntos de melhorias e funcionalidades construídos a partir dos pilares e princípios citados no post anterior:

 

1-     Formulário e Navegação

·         Navegação com ribbons (office 2007) com objetivo de ter menos poup ups. A navegação será in page, ou seja, sem poup ups;

·         Todo formulário terá um header e um footer que podem ser customizados com atributos da entidade;

·         As tabs (abas) foram movidas do formulário para o painel esquerdo (navigation panel);

·         As sessões do formulário podem ser colapsadas;

·         Main.aspx substitui loader.aspx e o edit.aspx, utilizando os seguintes parâmetros:

         pagetype – specifies form or grid

         id – specifies an entity id

         viewid – specifies a view

         viewtype – specifies type of view (system or user)

         etn – preferred method of specifying an entity

         extraqs – extra query string parameters (URL encoded)

 

Exemplos:

Criar um novo registro

http://<server name>/<org name>/main.aspx?etn=<entity name>&pagetype=entityrecord

 

Editar um registro existente

http://<server name>/<org name>/main.aspx? etn=<entity name>&pagetype=entityrecord&id=<object_id>

 

Acessar uma view de sistema

http://<server name>/<org name>/main.aspx?etn=<entity name>&pagetype=entitylist&viewid=<view_id>&
viewtype=1039

 

Acessar uma view de usuário

http://<server name>/<org name>/main.aspx?etn=<entity name>&pagetype=entitylist&viewid=<view_id>&
viewtype=4230

O impacto desta mudança é tremendo em cenários de upgrade, onde existem muitos jscripts ou pontos de integração ISV que utilizem as addressable views.

·         Será adicionada uma pesquisa global ao sistema;

·         Melhorias no formulário:

- Subgrid: escolhe-se a entidade baseada no relacionamento e a view (os quais views) que será utilizada;

- Será possível adicionar atributos a partir do próprio formulário, através de comandos no ribbon;

- Picklists Globais :Um set que pode ser utilizado em diversos picklists;

- Os picklists poderão armazenar múltiplos valores;

- Filtered Lookup: será possível escolher a view que será exibida e por qual atributo serão filtrados os registros, além de passar parâmetros fetchXML, XML e jscript para os lookups;

 

 

2-     Grids (Exibições)

Runtime Filters:  filtros para ordernar ou para pesquisar por algum valor de alguma coluna da view , será um botão no  ribbon e alterará em tempo real a exibição. Similar ao auto-filtro do excel

User Select Default View: o usuário pode selecionar uma view padrão para cada entidade

 

Gráficos dos Dados do Grid

Gráficos Asp.Net for .Net Framework 3.5 que são exibidos para os dados que foram renderizados na última atualização do grid. Ainda é possível realizar drill down dos dados (um novo gráfico é criado).Os gráficos estão relacionados a cada exibição, e novos gráficos podem ser criados/importados através de um wizard. Uma possibilidade que está sendo estudada é habilitar os gráficos como visualização padrão dos dados ao invés da exibição, como dashboards.

 

 

3-     Integração com Sharepoint

Também chamada de Sharepoint Provisioning. No momento da instalação do CRM será possível definir se haverá um site do Sharepoint para o armazenamento dos documentos, que então serão armazenados no mesmo e disponibilizados no CRM através de Iframes que exibem a páginas do site.

 

O foco atual é apenas o uso das document libraries do Sharepoint e a navegação foi concebida para ocorrer a partir do CRM e não ao contrário (apesar de ser possível). A estrutura padrão do site criado é por unidades e negócios e times (sim, os documentos por padrão são de propriedade dos times e não de usuários).

 

Importante ressaltar que a atualização entre as aplicações não é automática: existe um mecanismo de sincronização controlado pelo serviço assíncrono. Se um novo time é criado no CRM, a estrutura para armazenar seus documentos é criada no Sharepoint. Outro ponto importante é que documentos armazenados no Sharepoint não estarão disponíveis offline (e é claro, não teria nenhum sentido). Talvez por isto é que a Microsoft está migrando o Groove Server/Cliente para a plataformar MOSS (ele passará a chamar Sharepoint Workspace): um Sharepoint Workplace Client poderá trabalhar offline com espaços de trabalho do Groove e sites do Sharepoint.

 

Apesar de ser um recurso muito promissor (e desejado), existem alguns pontos importantes não definidos, como por exemplo qual o tratamento a ser adotado para anotações e mail merge. Existem também alguns limitantes, que irão requerer uma mudança no skill dos desenvolvedores: ações de manipulações dos documentos deverão ser realizadas utilizando o sdk do Sharepoint. Haverá suporte para workflows, mas apenas para ações que não manipularem propriedades dos documentos. Caso contrário deverão ser utilizados workflows do Sharepoint. Mas talvez a maior limitação seja o fato de  que o Sharepoint Provisioning só estára disponível para soluções 100% on premise ou partner hosted.

 

Na 3a e última parte desta série de artigos, continuarei expondo as novas funcionalidades do CRM 5.0

jan
16
2010
2

Dynamics CRM 5.0: O que haverá de novo?

A versão 5.0 do Dynamics CRM já está chegando, e cheia de novidades. O objetivo da Microsoft é continuar com o movimento iniciado com a versão 4.0 de fazer com que a aplicação seja entendida como plataforma. Então uma pergunta vem à mente: podemos continuar chamando-a de CRM?
A resposta: em principio sim. O core da aplicação, presente desde a versão 3.0 ainda é focado em conceitos muito sólidos de CRM (e ele é muito bom, este é um dos motivos do sucesso da aplicação), mas a Microsoft tem acenado ao mercado que gradualmente inserirá conceitos de XRM e outros com objetivo de  fornecer aos parceiros uma plataforma para criar soluções que podem facilmente interagir com outras aplicações, estando elas em qualquer lugar conectado à internet.
A Microsoft prestou muita atenção ao feedback dos clientes e parceiros, e muito do que todos da área desejaríamos ver na aplicação está lá (ou pelo menos planejado para estar). É importante ressaltar essa postura positiva e o fato de que de uma maneira ou outra a comunidade Dynamics CRM e não apenas a Microsoft participaram da construção da aplicação.
Começemos então a conhecer quais são as novidades do Dynamics CRM 5.0. O material foi coletado de diversos sites na internet e é claro, que apesar de as fontes serem bem confiáveis, não é possível afirmar que tudo o que está sendo dito realmente estará disponível na aplicação.
 

Princípios
O desenvolvimento da versão 5 do Dynamics CRM foi baseado nos seguintes princípios:

Improve 'time to value': que pode ser traduzido como  "otimizar o uso". A aplicação será mais fácil de utilizar e de customizar, além de uma melhoria no que pode ser chamado de "fundação"(CRM basics) do CRM: funcionalidades de segurança e colaboração ,vendas, marketing e serviços.

Bussiness Aplication Plataform: desde a versão 4.0 a Microsoft incita os parceiros a considerar o CRM como plataforma, mas isto só será totalmente verdade com a versão 5.0, que contará com recursos que facilitarão a convivência de diversas soluções em um mesmo ambiente, ou ainda a integração das mesmas com outras aplicações (conceito de solution ecosystem). Essa integração poderá ocorrem em aplicações na intranet ou na internet (cloud services). Uma experiência de desenvolvimento mais rica também será proporcionada.

 

Pilares
Baseado nos principios acima, a aplicação foi construída a partir dos seguintes pilares, sempre com o foco no aumento da produtividade, tanto do usuário quanto do desenvolvedor:

1-     Interface Office (Office Class UX)

O toolbar do CRM irá desaparecer e uma interface no formato ribbon do Office 2007 tomará o lugar. O objetivo é aumentar a produtividade do usuário por que é uma interface familiar e baseada em cliques (não em janelas). Os ribbons podem ser customizados em nível de aplicação, formulários, grids e entidades, através de um arquivo de personalização XML próprio. No caso de uma migração, todas as customizações que estiverem no ISV.Config serão transferidas automaticamente para os ribbons. Isto traz uma outra boa notícia: adeus ISV.config!

 

2-     CRM Basics

·         Colaboração: é possível criar bibliotecas de documentos por entidades e armazená-las em um site do Sharepoint (Sharepoint Provisioning);

Mais detalhes a seguir

 

·         Relacionamentos: Connections, que são relacionamento ad hoc do tipo tagging que não alteram o esquema do banco de dados (não criam atributos de relacionamento e não possuem cascading). Uma boa comparação é a melhoria e disponibilidade para todas as entidades do recurso Relacionamento, atualmente disponível apenas para Contas, Contatos e Oportunidades. Uma conexão pode ser aplicada a um ou aos dois registros relacionados.

Uma conexão poderá disparar um plugin e possivelmente um workflow.

 

·         Times: os times passam a ser a principal componente na estrutura de segurança da aplicação: eles podem possuir e compartilhar registros. Podem ser atribuídos security roles aos times.

 

·         Atividades Recorrentes: Uma grande limitação que agora foi resolvida, apesar da imensa complexidade. Isto por que Outlook utiliza um modelo de recorrência chamado Virtual Expansion, em que apenas as configurações são armazenadas (e não os registros em si). Esse modelo não poderia ser utilizado no CRM por que as atividades podem, por exemplo, fazer parte de workfkows e portanto devem existir no banco. Agora imaginem uma recorrência infinita. Deu para entender o tamanho do problema?

 

Foi então concebido um modelo chamado Partial Expansion, onde o número de instâncias passadas e futuras que serão armazenadas no banco são configuráveis pelo administrador. O Expansion Service será controlado pelo Serviço Assíncrono.

  

·         Filas: as filas passam a ser do tipo User/Team Owned e, portanto sujeitas a estrutura de segurança determinada pelas bussiness units. Segue  lista de outras melhorias bem vindas:

- As views podem ser customizadas;

- Os itens das filas podem disparar workflows;

- Foi adicionada uma pesquisa;

- Entidades personalizadas podem ser enviadas para filas;

- Um usuário pode rotear um item diretamente para outra fila;

- Consistência no delete: agora é possível deletar o item da fila e do sistema, além de só removê-lo da fila;

- Como times podem possuir registros, foi adicionado um outro status na fila chamado Working On, para indicar qual membro assumiu a responsabilidade pelo registro.

 

3-     S + S (Software + Service)

·         A Microsoft pretende disponibilizar espaço no Solution Finder e PinPoint para que os parceiros possam vender suas soluções online;

 

·         Sandbox: modo isolado e seguro de acesso à plataforma para a execução de código customizado. É um modo opcional de execução dos plugins. Cada organização possuirá um sandbox próprio e um servidor pode ter um papel (role) para atuar dedicado apenas para esta função. As principais vantagens do uso deste recurso são:

o    Os plugins poderão ser construídos e implementados em várias instalações sem necessitar de alteração de código, em um modelo de service provider;

o    Os plugins são associados a um profile, e assim torna-se possível monitorar violações de restrições de segurança, exceções e consumo de recursos. Os plugins são desabilitados automaticamente pela plataforma quando apresentam erro consistentemente

O uso do sandbox permitirá agrupar os plugins por desenvolvedor ou por solução, e desta forma isolar problemas de desempenho e a ocorrência de falhas.

 

·         Transações em Plugins: Opcionalmente, será possível registrar o plugin para atuar antes e depois da transação, mas haverá commit e rollback apenas de dados que estiverem no CRM. Transações distribuídas não serão permitidas;

                                      

·         Tracing em Plugins: é possível realizar um rastreamento das ações do plugin, via WebService

 

·         Auditing: é possível habilitar um audit trail por entidade. Provavelmente será obrigatório o uso do SQL 2008, já que este é um recurso nativo do mesmo.

 

·         Outlook Client V4/V5: A Microsoft garantirá que os Outlook Clients versão 4.0 funcionarão mesmo após o upgrade do servidor para a versão 5.0. Não está descartada a construção de uma versão intermediária;

 

·         Melhorias no Desempenho: remoção do deletion state code, otimizações em querys e em workfows;

 

·         Novos recursos de desenvolvimento: bibliotecas de jscript (armazenamento centralizado), uso de código Silverlight, Child Pipeline CreateCrmService, Nested Pipelines e Custom Web Service Proxies;

 

·         Endpoint Consolitation: CrmService e MetadataService serão consolidados em um único WebService;

 

·         Solution Management: Solution é um conjunto de componentes que são criados, empacotados e gerenciados como um único software. Customizações de entidades, workflows, relatórios e plugins podem fazer parte de uma solution.

 

Vantagens

o    Proteger propriedade intelectual no desenvolvimento;

o    Agilizar o desenvolvimento e entrega;

o    Facilitar o gerenciamento;

o    Permitir a coexistência entre diversas fases de projeto ou entre projetos diferentes.

 

No próximo artigo desta série, irei apresentar as principais novas funcionalidades do CRM 5.0

jan
01
2010
0

Novos Posts em Breve e Feliz 2010 para Todos!

Novos posts em breve…. prometo! Tenho gasto muito tempo elaborando treinamentos e estudando o material disponível da versão 5.0 do CRM.

Enquanto os novos posts não chegam, um bom 2010 para todos!

 

abcs,

 

 

Written by Ricardo de Souza in: Geral | Tags:
dez
02
2009
0

Academia Dynamics CRM: Oportunidade para conhecer melhor a aplicação

A academia de Dynamics CRM que a Tridea está oferecendo é uma ótima oportunidade tanto para aqueles que desejam aprofundar os conhecimentos quanto para aqueles que pretendem trabalhar com a aplicação.

Os treinamentos começam semana que vem e eu ministrarei os cursos Customization, Applications e Workflows.

 

nov
03
2009
0

SQL Server 2008: O que há de novo (Parte 2)

Neste 2o artigo sobre o que há de novo no SQL 2008, falarei sobre os novos recursos disponíveis para o desenvolvimento de aplicações.

É fato de que em muitos desenvolvimentos o cuidado na construção de consultas ou de objetos no banco de dados não é uma prioridade. Até por que as linguagens orientadas à objeto e o transact-sql pertencem a universos separados. As melhorias presentes no SQL 2008 permitirão que um DA ou DBA construam estruturas consistentes no banco de dados ao mesmo tempo que expõem aos desenvolvedores entidades e objetos para a construção de aplicações. Basta agora que os arquitetos de soluções e DAs/DBAs se entendam e definam seus papéis de forma a garantir a construção de soluções de qualidade.

Vamos lá?

Dynamic Development
 
Grouping Set: Nova sintaxe da cláusula GROUP BY (compatível com a ANSI SQL 2006) e alternativa a CUBE e ROLLUP que simplifica a escrita e melhora o desempenho de relatórios que possuem agregações. É equivalente a utilizar UNION ALL para retornar um resultado de múltiplos SELECTs.
Para visualizar como ficariam os scripts SQL utilizando GROUPING SET, vale a pena acessar este post do Craig Freedman (http://blogs.msdn.com/craigfr/archive/2007/10/11/grouping-sets-in-sql-server-2008.aspx)
 
MERGE Operator: Em uma única operação é possível realizar operações de INSERT ou UPDATE, o que é facilita a atualização de data warehouses.  As condições são determinadas pelo usuário no momento da construção do procedimento.
Para visualizar como ficariam os scripts SQL utilizando o operador MERGE, vale a pena acessar este post do Bruno Terkaly (http://blogs.msdn.com/brunoterkaly/archive/2008/11/12/sql-server-2008-merge-capability.aspx)
 
LINQ: Permite que os desenvolvedores pesquisem bancos de dados utilizando C# ou VB.NET e não somente T-SQL.
A biblioteca do LINQ no MSDN possui todo o roadmap necessário para a utilização deste novo recurso: http://msdn.microsoft.com/en-us/library/bb386976.aspx
 
Table-Valued Parameters (TVP): Permite que seja informada uma tabela para ser utilizada como parâmetro para execução de uma stored procedure, o que permite as mesmas trabalhem não apenas com um, mas com uma lista de parâmetros. Isto reduzirá a complexidade para os desenvolvedores trabalharem com datasets.
Para visualizar como ficariam os scripts SQL utilizando TVP, vale a pena acessar este post do Ravi S.Maniam (http://blogs.msdn.com/manisblog/archive/2007/09/23/table-valued-parameters-sql-server-2008.aspx)
 
ADO.NET Entity Framework and the Entity Data Model: Permite que desenvolvedores trabalhem diretamente com objetos (ou entidades) com LINQ  no banco de dados ao invés de pesquisá-lo com T-SQL.  Isto reduzirá a complexidade dos desenvolvimentos e permitirá que inclusive o esquema do banco de dados seja alterado sem que nenhuma linha de código seja reescrita.
Para maiores informações, é interessante consultar o link do time de desenvolvimento do ADO.NET: http://blogs.msdn.com/adonet/default.aspx
 
Synchronization Services for ADO.NET: permite a construção de aplicações OCS (build occasionally connected system) que trabalhem com cópias locais de dados que depois serão sincronizadas com um servidor ou com aplicações intermediárias. A atualização dos dados é incremental, o que diminuirá o volume de dados transmitido e o tempo de sincronização.
Espero que aplicações com o Microsoft Outlook Client for Dynamics CRM tirem vantagens sobre nesses novos recursos o mais rápido possível J.
 
CLR Improvements: houve diversas melhorias na funcionalidade. UDAs (User-defined aggregate) e UDTs (User-defined types) agora suportam 2GB e as table-valued functions suportam a cláusula ORDER.
 
ADO.NET Data Services:  provê a infraestrutura necessária para aplicações web disponibilizarem dados como um serviço que pode ser consumido por aplicações client.
A biblioteca do LINQ no MSDN possui todo o roadmap necessário para a utilização deste novo recurso: http://msdn.microsoft.com/en-us/library/cc907912.aspx
  
out
25
2009
0

SQL Server 2008: O que há de novo (Parte 1)

Diferentemente de outros softwares (como sistemas operacionais), em que os novos recursos são mais tangíveis ao público,  a troca de versão de um SGBDR requern uma leitura atenta à toda documentação disponibilizada. Isto por que novos recursos ou melhorias podem interessar à diferentes áreas de uma empresa, de desenvolvedores à usuários finais. O responsável pela decisão de realizar o upgrade deve estudar e compartilhar suas conclusões com todos os interessados, para que um investimento tão importante (e alto) como este seja realizado de forma a trazer benefícios adequados.
 
 No caso do SQL 2008, a Microsoft apresenta melhoras expressivas em 03 pontos que podem trazer uma grande diminuição no TCO (Total Cost of Ownership) para o armazenamento de dados ou desenvolvimento, dependendo do perfil da empresa:
  1. Gerenciamento: agora é possível definir políticas de forma centralizada e aplicá-las para um ou mais servidores, além de monitorar o compliance com as mesmas. Extremamente importante para provedores de serviço ou empresas com grandes datacenters. Houve  melhoria nas ferramentas de monitoramento e na alocação de recursos do servidor à objetos do banco de dados;
  2. Desenvolvimento:a adoção do LINQ,  ADO.NET Entity Framework e melhoras nos mecanismos de syncronização permitirão que DAs e DBAs possam criar estruturas robustas no banco de dados e ainda assim disponibilizar entidades e objetos que serão consumidos pelos desenvolvedores.Extremamente importante para empresas desenvolvedoras de soluções em software;
  3. Apresentação: Melhoras no Report Server e SSAS (Analysis Server) permitirão que os dados sejam disponibilizados para o usuário final com um custo de desenvolvimento e complexidade bem menores do que os atuais.
Eu começo esta série de artigos pela plataforma de dados (Enterprise Data Plataform). Na semana que vem discutirei sobre o desenvolvimento dinâmico com LINK e ADO.NET e na sequência apresenterei os novos tipos de dados e melhorias no XML. Por último apresentarei as melhorias do Report Server, Analysis Server e Integration Services.
 
 
Enterprise Data Platform
Policy-Based Management / Server Group Management: é possível definir políticas para gerenciar a segurança, opções de bancos de dados, convenções de nomes de objetos e outras configurações de forma centralizada para um ou mais servidores. É possível ainda verificar se um determinado servidor está atendendo as políticas estabelecidas.  O mecanismo responsável pelo gerenciamento é o DMF (Declarative Management Framework).
 
Performance Data Collection (Data Collector):Através do Data Collector e do PerformanceDashboard tool você pode coletar e analisar os contadores de desempenho realizando comparações históricas e até mesmo configurar polices para coletar informações mais detalhadas quando um determinado evento ocorre, como por exemplo: alta utilização da CPU. Os dados referentes a performance são  armazenados em um datawarehouse específico.
 
Data Compression: é possível comprimir os dados armazenados em uma taxa que vai de 2 até 7 vezes. É um recurso que pode ser ativado sem necessidade de rever código das aplicações.
 
Resource Governor: possibilita a criação de grupos que consumirão recursos do servidor. Com isso é possível monitorar ou limitar o consumo de recursos para os mesmos.
 
Transparent Data Encryption: os arquivos do banco de dados são protegidos e os dados só podem ser descriptografados por um agente autorizado. A criptografia pode ser implementada em nível de célula, linha ou banco de dados. Não é preciso rever código das aplicações
 
External Key Management / Extensible Key Management: Os certificados e chaves podem ser armazenados em HSMs(Hardware Security Modules), o que permite uma arquitetura mais robusta de segurança e compliance com padrões de segurança como o PCI DSS (Payment Card Industry Data Security Standard)  
 
Data Auditing: no SQL 2005 só era possível através da construção de triggers, agora é possível auditar alterações de dados e do servidor SQL nativamente. Isto é feito através do CDC (Change Data Capture): insert, update e deletes são armazenados em tabelas que podem ser facilmente consultadas pelos usuários.
 
Hot-Add CPUs and Hot-Add Memory:  é possível adicionar CPUs e memória adicionais ao SQL Server sem ter que interromper o serviço ou limitar o acesso dos usuários, mas apenas na versão 64 bits.
 
Streamlined Installation / Upgrade Advisor: o processo de instalação foi melhorado e se tornou mais ágil. O Upgrade Advisor analisa a instalação de servidores locais e remotos em busca de problemas que possam impedir o upgrade.
 
Partition Aligned Indexed Views: uma view pode ser criada para seguir o esquema de particionamento da tabela à qual ela referencia, e nesse caso ela não precisa ser mais eliminada quando o esquema de particionamento da tabela for alterado.
 
Backup: Controle de quantidade de pessoas que podem restaurar um backup. Além disso, o mesmo agora pode ser comprimido.
 
Extended Events: disponibiliza informações detalhadas sobre eventos do SQL Server, que podem ser vinculados a eventos do Windows e assim reduzir o tempo para identificar e resolver problemas complexos relacionados à aplicação.
 
High Avaibility:
Agora é possível aplicar compressão na comunicação entre os parceiros do Mirror. O redirecionamento dos clientes no caso de falha é transparente.
Caiu a limitação de apenas um drive em cada participante do cluster, além do SQL Server agora suportar mais do que 16 nós.
A replicação não precisa mais ser interrompida quando é necessário adicionar um novo nó.
 
Até mais ! : )
set
22
2009
0

Leitura Obrigatória: Versão 2.0 do Optimizing and Maintaining Microsoft Dynamics CRM 4.0

A versão 2.0 do documento que saiu em 30/06 contém um maior detalhamento sobre as ações que podem ser tomadas para melhorar o desempenho do Dynamics CRM 4.0. Em resumo as alterações foram a alteração dos requisitos de hardware e software, atualização para links de novas versões de produtos como SQL e Windows Server, além de uma lista (bem vinda) de contadores de desempenho.

abaixo segue o link:
http://www.microsoft.com/downloads/details.aspx?FamilyID=ba826cee-eddf-4d6e-842d-27fd654ed893&displaylang=en

 

 

 

set
19
2009
0

Melhorando o Desempenho do Dynamics CRM – Parte 2

 O que o Rollup não faz por você

Eu havia prometido que o próximo artigo da série "Melhorando o Desempenho do Dynamics CRM" seria sobre o componente banco de dados, mas resolvi mudar a ordem e inserir um alerta sobre algo que considero causar mais impacto: As atualizações que devem ser aplicadas manualmente após a instalação de cada Rollup disponibilizado pela Microsoft. Lendo mais atentamente os KBs, notei o seguinte:

  1. Cada Rollup habilita a possibilidade de alterar o comportamento da aplicação através de alteração / criação de chaves no registro tanto no servidor quanto nas estações de trabalho;

  2. A instalação do Rollup 4, por exemplo, não significa que você não precise aplicar as atualizações manuais dos Rollups anteriores; 

  3. Pelo menos no MSDN, a Microsoft não atualizou a compilação do pacote, o que significa que se chegarmos no Rollup 10 (o que é muito provável, já que estamos no 6), existirá uma lista enorme de correções a serem aplicadas.

O que me preocupa é a aplicação dessas numerosas correções em ambientes com diversos servidores e um número elevado de estações de trabalho. Tenho uma opinião radical em relação a questão: se é para melhorar o desempenho, que seja aplicado automaticamente ou que pelo menos exista uma opção na interface da aplicação para executá-la! Do jeito que está os parceiros que customizam o CRM são obrigados a assumir o tunning, para evitar que a culpa recaia sobre os seus próprios desenvolvimentos.

Abaixo uma lista com os KBs relacionados a desempenho e que precisam ser aplicados manualmente.

Rollup

KB

Onde deve ser executado

Rollup 1

950175  You cannot use Outlook as expected until all Microsoft Dynamics CRM 4.0 add-ins are loaded

Estação de Trabalho

 

954811  Microsoft Dynamics CRM 4.0 Deployment Manager takes a long time to open on a Microsoft Dynamics CRM 4.0 server

Servidor

 

 

Rollup 2

956527  The Microsoft Dynamics CRM client for Outlook consumes three times as much memory in version 4.0 as in version 3.0

Estação de Trabalho

 

959248  Microsoft Dynamics CRM 4.0 slows to unacceptable levels when you process e-mail messages by using the Microsoft Dynamics CRM E-mail Router

Servidor

 

957871  The Workflow Expansion Task records cause the AsyncOperationBase table in the MSCRM database to grow too large in Microsoft Dynamics CRM 4.0

Servidor

 

 

Rollup 3

956330  Slow performance and high CPU utilization occur when you import customizations in Microsoft Dynamics CRM 4.0

Servidor

 

968755  The AsyncOperationBase and WorkflowLogBase tables grow very large and performance issues occur when you use many workflows in Microsoft Dynamics CRM 4.0

Servidor

 

 

Rollup 4

955138  You experience slow performance or timeouts when you try to access some views in Microsoft Dynamics CRM 4.0

Servidor

 

 

Rollup 6

974896  The Asyncoperation tables grow very large in Microsoft Dynamics CRM 4.0.

Servidor

 Quem quiser a lista completa de atualizações manuais dos rollups basta baixar este arquivo.

set
07
2009
0

Melhorando o Desempenho do Dynamics CRM – Parte 1

Dynamics CRM 4.0: Foco na escalabilidade e produtividade
Com os recursos disponíveis na versão 4.0 do Dynamics CRM tornou-se possível a criação de soluções mais sofisticadas com menos esforço ou complexidade. Cito abaixo diversos exemplos :

-A possibilidade de disparar workflows para diversos eventos e a adoção do WWF (Windows Workflow Fundation) permitiram inserir na aplicação processos de negócio mais complexos;

-A sofisticação da estrutura de relacionamento e a possibilidade de criar relatórios via wizard permitiram o desing e criação de entidades que correspondessem as necessidades de armazenamento dos dados e de extração de dados para análise;

Fora outras melhorias que dependendo do projeto, significam ou um diferencial entre os produtos concorrentes ou servem como apoio na customização da aplicação para o cliente, como multi currency, multi language, exportação de configurações, importação de dados para qualquer entidade, etc. É claro que existem muitas coisas no produto que poderiam ser melhores (e a lista não é pequena) mas a evolução comparada a versão 3.0 é expressiva e tiveram foco na escalabilidade e estabilidade quando em operação, além na produtividade durante o desenho e desenvolvimento. Mas o que poderia ser melhor no Dynamics CRM fica para outro tópico.

Projetos de Implementação de CRM: Sinônimo de expectativa
Em geral os projetos de implementação de uma estratégia de CRM são acompanhados por muita expectativa por parte do cliente, pois significa uma mudança no paradigma de como se relacionar com o publico alvo.Lidar com esse cenário é um desafio enorme para qualquer gerente de projeto ou arquiteto de software. E não existe nada mais frustrante do que a aplicação não responder de forma adequada.

O problema é depois de tudo pronto descobrir aonde mexer. Muitos esquecem de que por der uma aplicação web, o Dynamics CRM possui diversos componentes que são impactados de forma distinta por uma customização ou desenvolvimento mal planejado. Na maioria dos casos a customização não está tecnicamente mal construída, mas na sua idealização não foram levados em consideração fatores como perfil de utilização (o que primariamente os usuários realizarão no CRM e como o farão?), restrições tecnológicas ou de segurança no ambiente do cliente e integrações entre outros sistemas .

Por isso é importante tomar alguns cuidados no momento de desenhar a solução para o cliente. E quando eu falo desenhar a solução, quero dizer desde decidir se um processo de negócio será implementado via workflow ou plugin desde prever o impacto de processos de migração de dados em massa ou de uma lógica extremamente complexa aplicada via jscript no onload de um formulário que será utilizado simultaneamente por 200 usuários.

Nesta série de posts, irei descrever uma série de recomendações, que vão desde o desenho da solução até ajustes em componentes como o SQL Server e .NET Framework. O objetivo é diminuir o risco de um grave problema de desempenho no Dynamics CRM. É claro que cada projeto tem suas características e sempre haverá algum cenário em que não será possível observar alguns dos itens que apresento, mas é importante conhecê-los e se antecipar comunicando os riscos ao cliente, que deve decidir se o desempenho é o preço a se pagar pela informatização de um processo de negócio. A decisão é sempre dele, nunca do responsável pelo projeto.
 

Cuidados no Desenho da Solução

1-Não esqueça de que por ser uma aplicação web, o Dynamics CRM possui diversos componentes (Sql Server, Web Server, Web Services, Estações de Trabalho e Customizações). Cada um dele deve ser dimensionado de acordo com as especificações de hardware software recomendadas na documentação do produto. Recomendada não é a configuração mínima. Ela não garante desempenho.

2-Ainda sobre hardware e software, se o seu projeto prevê o uso extenso de workflows, talvez seja melhor prever a versão Enterprise e deixar uma máquina específica para o Serviço Assíncrono (que é responsável pelos workflows, serviço de importação e de detecção de duplicatas). Se houver um grande número de usuários, talvez seja necessário deixar um ou mais servidores específicos para a apresentação da interface. Ou ainda, se está planejada a adoção em massa do Outlook Client para Laptops, é bom prever o impacto na intranet. E assim sucessivamente. A Microsoft possui uma documentação detalhada a respeito do que você pode fazer para melhorar o tempo de resposta da aplicação.

3-Se no seu projeto existir o cenário de migrações em massa, procure evitar a adoção de workflows que disparam automaticamente nas entidades que estão sendo migradas.O desempenho da aplicação é degradado de maneira intensa, e pode ser que os worflows fiquem travados, o que obrigará que você tenha que deletá-los (o que é extremamente trabalhoso).
Uma alternativa seria criar um serviço que fosse executado em um horário diferente da migração para realizar a atividade dos workflows (ou até mesmo executá-los).

4-Jscripts devem ser utilizados com cuidado por 03 questões: eles são de difícil manutenção, é muito fácil de um código ser alterado inadvertidamente e deixar de funcionar e por último, eles são descarregados localmente na estação de trabalho para execução. Java Scripts extensos e complexos juntamente com estações de trabalho antigas são sinônimos de problemas de desempenho.

5-Se uma lógica de negócio for extremamente complexa de ser aplicada via workflow ou Java script, talvez seja melhor criar um plugin .NET para executá-la. O desempenho e confiabilidade são superiores.

6-Muitos clientes possuem áreas de TI que não estão acostumadas a suportar aplicações web. É importante alertá-los desde cedo que a execução de atividades de manutenção de acordo com a documentação do produto(como backup do banco de dados, atualizações, etc.) garantem o desempenho do mesmo.

7-Muitos clientes possuem usuários que não estão acostumados com a navegabilidade e funcionalidade de aplicações web. É bom alertá-los desde cedo de que adicionar recursos ou interferir no funcionamento da aplicação tem um custo de desempenho.

8-Caso a utilização do Outlook Client para Laptops seja predominante, o cuidado deve ser redobrado. O funcionamento de customizações pode ser totalmente diferente ,o que requer que o código seja reescrito, causando problemas de desempenho. É preciso lembrar que a estação de trabalho é o servidor!

9-Se os relatórios exigem agregação, sumarização e outras operações matemáticas com quantidade de registros na ordem de milhões, é recomendado replicar os dados para um repositório a parte (datawarehouse) e manipular os dados no próprio SQL criando views e store procedures que serão consumidas pelos relatórios, caso contrário o Report Server consumirá todos os recursos disponíveis do servidor onde estiver instalado. Ele não foi concebido para fazer operações aritiméticas em grande escala , mas sim para exibir relatórios.

10-Nunca deixe que um desenvolvedor escreva sozinho a query no banco de dados para o funcionamento dos desenvolvimentos. Ela deverá ser otimizada por um DBA e deverá sempre obedecer ao que consta na documentação do produto

11-Sempre desenvolva tudo em conformidade com o SDK (Software Development KIT) do Dynamics CRM. Isto por que se você ainda tiver um grave problema de desempenho após ter observado tudo o que foi disposto acima, ainda poderá contar com o suporte da Microsoft para resolvê-lo.

Essas são as recomendações quanto ao desenho da solução que deverá ser apresentada ao cliente. Na próxima semana escreverei sobre algumas dicas na manutenção e otimização do componente banco de dados do Dynamics CRM.

Abraços!

set
05
2009
0

Dynamics CRM 4.0: Workflow que nunca executam!

Esta semana me deparei com o seguinte problema: em um ambiente CRM 4.0 com servidores bem dimensionados, os workflows não estavam sendo disparados. A maioria deles estava em estado de espera e com data de execução para 31/12/2999 (!!!!)

Pesquisando na internet, encontrei a causa: quando você atualiza ou instala o CRM 4.0 com um custom header, ou ainda, quando você muda o host header do site, pode ser que nenhum valor (ou o valor errado) seja gravado na tabela deploymentproperties do banco MSCRM_CONFIG. O Serviço Assíncrono, o Email Router e o Outlook Client utilizam o Discovery Service para determinar qual a url correta do servidor, e se o valor na tabela citada não estiver correto, o serviço não é encontrado e nada funciona.

Para descobrir se a sua instalação está com problemas, acesse o banco MSCRM_CONFIG através do Sql Management Studio e execute as querys abaixo:
select Nvarcharcolumn from deploymentproperties where columnname = ‘asyncsdkrootdomain’
select Nvarcharcolumn from deploymentproperties where columnname = ‘adsdkrootdomain’
select Nvarcharcolumn from deploymentproperties where columnname = ‘adwebapplicationrootdomain’

 

Se qualquer um dos valores retornados for NULO ou um endereço diferente do host header atual do site do CRM, você deverá atualizá-lo com uma das querys abaixo:
update deploymentproperties set nvarcharcolumn = ‘NOME_DO_SERVIDOR’ where columnname = ‘asyncsdkrootdomain’
update deploymentproperties set nvarcharcolumn = ‘NOME_DO_SERVIDOR’ where columnname = ‘adsdkrootdomain’
update deploymentproperties set nvarcharcolumn = ‘NOME_DO_SERVIDOR’ where columnname = ‘adwebapplicationrootdomain’

Após o procedimento, basta reiniciar o ISS, email router e Serviço Assíncrono.

Para maiores detalhes, basta acessar os links abaixo:
http://crmhacks.blogspot.com/search/label/MSCRM4%20Workflow
http://www.sadev.co.za/content/workflow-doesnt-work-imports-never-happen-emails-dont-flow-and-outlook-clients-cannot-connec 

 

Powered by WordPress. Theme: TheBuckmaker. P2P Kredit, Wasserbelebung