quarta-feira, 25 de junho de 2008

Testes de Performance

Trouxemos do TechEd o livro “Performance Testing Guidance for Web Applications” que estava sendo distribuído gratuitamente.

O livro é muito teórico e um pouco cansativo, mas sempre conseguimos tirar proveito de algumas coisas. Abaixo a parte inicial do que o livro trata.

O passo inicial para qualquer atividade de teste dentro de um projeto é coletar informações para que os “stakeholders” possam mensurar a qualidade total da aplicação. Os “Performance Testing” ajudam na busca de problemas no sistema, testes de tuning, estabelecer uma nova linha de testes e determinar performance (objetivo e requerimento). O resultado do “Performance Testing” pode ajudar a estimar a configuração de hardware necessário para suportar a aplicação quando for colocada em produção.

O “Performance Testing” consiste nas atividades a seguir:


Atividade 1: Identificar ambiente de teste
Identifica ambiente físico (homologação e produção) bem como as ferramentas e recursos necessários para a equipe de teste. Inclui Hardware, Software e configuração de rede.

Atividade 2: Identificar desempenho e aceitação de critérios
Identifica tempo de resposta (através de saídas) e utilização de objetivo de recursos e relacionamentos. Em questão busca saber quais são os índices necessários de resposta do sistema para que ele funcione com desempenho necessário.

Atividade 3: Plano e testes de design
Identifica cenários chave, variâncias de dados de usuários e como simular essas variâncias, definir dados de teste e métricas a serem coletadas. Consolida essas informações dentro de um ou mais modelos para ser implementado, executado e analisado.

Atividade 4: Configurando e testando o ambiente
Preparação para o ambiente de teste, ferramentas e recursos necessários para executar cada estratégia como recurso e componente através dos testes disponíveis. Assegura que o ambiente de teste está instrumentado como recurso de monitoração como necessário.

Atividade 5: Implementação de testes de Design
Desenvolvimento de testes de desempenho de acordo com os testes de design

Atividade 6: Execução de testes
Rodar e monitorar os testes. Validação dos testes, teste de dados e teste de resultados.

Atividade 7: Analise de resultado, Relatórios e re-testes
Analise do relatório gerado a partir dos testes da atividade anterior. Análise de dados separado e em conjunto. Rodar os testes restantes e re-executar se necessários. Quando todas as métricas e valores estiverem no nível de aceitação necessário, nenhum dos níveis limiares foi violado e todas as informações desejadas foram coletadas, os testes foram finalizados para este cenário/configuração particular.

No próximo post teremos todos os testes possíveis e quando utilizar cada um, além de uma tabela de “testes vs riscos”.

quinta-feira, 19 de junho de 2008

Steve Jobs

Primeiro gostaria de parabenizar todos os integrantes deste blog, vamos aproveitar todas as informações pois acredito que este seja uma grande ferramenta de atualização e compartilhamento de informação.

Vou tentar passar para vocês um pouco de informação sobre o negócio da Officer.

Para começar estou mandando o endereço onde tem um vídeo muito interessane sobre uma palestra do Steve Jobs para uma turma de formando de 2005 da Universidade de Stanford, quem não viu não deixe de assistir.

file://172.16.0.26/app$/publico%20%20

Metodologias Ágeis - 4

XP (Extreme Programming)

O Extreme Programming (XP) é uma metodologia de desenvolvimento de software seguidora dos conceitos ágeis, nascida nos Estados Unidos ao final da década de 90.Provavelmente é a mais conhecida de todas.

Incluindo todas as praticas ágeis o XP possui seus valores fundamentais:

Comunicação: Basicamente o alicerce de tudo que se refere a relacionamentos, principalmente entre cliente e fornecedor, a comunicação direta e sem firulas é imprescindível
para uma boa evolução de qualquer projeto.

Simplicidade: Implementar apenas aquilo que é suficiente para atender a necessidade do cliente. Ou seja, ao codificar uma funcionalidade devemos nos preocupar apenas com os problemas de hoje e deixar os problemas futuros para serem discutidos e planejados futuramente.

Feedback: Basicamente o retorno do cliente em relação ao sistema. Quando o cliente aprende a utilizar sistema ele reavalia suas necessidades gerando assim o feedback para a equipe de desenvolvedores. Esse feedback traz várias alterações que são de extrema necessidade para o cliente.

Coragem: Com um modelo de desenvolvimento incremental onde as funcionalidades podem mudar de uma hora para outra gerando situações inesperadas e riscos de falhas, é preciso ter em mente que isso faz parte do desenvolvimento de uma solução funcional.

Com base nos valores o XP dita os seus princípios básicos:

Feedback rápido: Um rápido retorno de sua avaliação por parte do cliente garante maior agilidade para o projeto uma vez que a equipe pode aprender mais rapidamente com seus erros e acertos.

Simplicidade Presumida: Todos os problemas e oportunidades devem ser resolvidos de maneira simples e concisa sem a adição de pontos desnecessários.

Mudanças Incrementais: Grandes mudanças de uma só vez em qualquer projeto é muito difícil que dê certo, no XP o projeto é alterado gradualmente em seu tempo de desenvolvimento. Essa mudança dever planejada e estudada para que não atrapalhe o funcionamento normal do sistema.

Alta Qualidade: Importantíssimo manter a qualidade total de um projeto, fazendo com que ele não apresente erros, que tenha bom desempenho e que definitivamente atenda as expectativas do cliente.

Um site bem interessante sobre XP
Outro site...esse é da USP

Para aplicar os valores e princípios durante o desenvolvimento de software, XP propõe uma série de práticas. Há uma confiança muito grande na sinergia entre elas, os pontos fracos de cada uma são superados pelos pontos fortes de outras.

Planning Game (jogo de planejamento): planejamento de cada ciclo de desenvolvimento, ao iniciar uma nova etapa todas as iterações relacionadas deverão ser reavaliadas.

Small Releases (pequenas versões): Liberação de versões funcionais do software para a ‘apreciação’ e validação do cliente.

Metaphor (metáfora): Se comunicar com o cliente de forma que ele possa entender exatamente o que a equipe quer dizer.

Simple Desing (criação simples): Desenvolver as iterações exatamente como elas foram especificadas e da forma mais simples possível, sem incluir códigos e funcionalidades desnecessárias.

Whole team (time integrado): Manter o time completamente coeso e integrado. O cliente inclusive é parte do time.

Customer Tests (testes de validação): Testes sugeridos e realizados junto ao cliente com intuito de simular o mais próximo possível a situação real que o software irá operar.

Sustainable Tests (ritmo sustentável): Criar um ritmo de produção que viabilize uma vida normal para os integrantes da equipe. Criar ciclos que possam ser resolvidos utilizando apenas o horário normal de trabalho dos integrantes.

Stand-up Meeting (reuniões em pé): Reuniões diárias rápidas a fim de sincronizar todos os processos do dia.

Collective Ownership (propriedade coletiva): Todos os integrantes da equipe têm acessos permitidos aos códigos sem a necessidade de autorizações prévias a fim de toda equipe ter conhecimento de todo sistema e ter a capacidade de atuar em qualquer iteração.

Pair Programming (programação em dupla): O desenvolvimento é sempre feito por duplas em um único computador, enquanto um codifica o outro revê o código e elabora a seqüência da codificação. Os papeis são invertidos constantemente.

Coding Standards (padrões de códigos): Manter um padrão para o desenvolvimento para que independente de quem mexa em uma determinada área de código, mesmo nunca tendo visto essa área, possa prosseguir sem problemas e deixar ‘preparado’ para outras pessoas. A adoção de frameworks de desenvolvimento é uma boa dica.
Test Driven Developemnt (desenvolvimento orientado a testes): Um dos principais pontos do XP, criar os testes mesmo antes do código em si, dessa forma é possível manter uma qualidade elevada e 100% funcional.

Refactoring (refinamento): Refinar o sistema constantemente, limpando códigos, eliminando duplicidade e adequando melhor aos padrões.Continuous Integration (integração continua): Sempre que produzir uma nova funcionalidade, nunca esperar uma semana para integrar à versão atual do sistema. Isto só aumenta a possibilidade de conflitos e a possibilidade de erros no código fonte. Integrar de forma contínua permite saber o status real da programação.

quarta-feira, 18 de junho de 2008

CMMI - Capability Maturity Model Integration

Seguindo os posts do Cristiano Dianese resolvi escrever sobre uma metodologia que utilizamos para gerenciamento de projeto dentro da Officer: o CMMI (Capability Maturity Model Integration).

O CMMI é uma metodologia para desenvolvimento de projetos que pode ser implantada em qualquer área de uma empresa utilizando “melhores práticas”. A partir dela fica mais fácil gerir um projeto. Atualmente utilizamos essa metodologia dentro da área de TI na fase de Iniciação e Elaboração, ou seja, antes de iniciar o desenvolvimento propriamente dito.
Essa metodologia não diz quais softwares ou ferramentas utilizar e sim, qual o processo seguir para melhorar o processo de um projeto.

Papéis vs Responsabilidades
Na imagem abaixo temos uma visão geral dos papéis e responsabilidades de cada profissional dentro de um projeto. Lembrando que um mesmo profissional pode exercer dois papéis diferentes dentro de um mesmo projeto. Existe uma tabela que relaciona “papéis vs pontos” para que um profissional não fique sobrecarregado trabalhando em vários projetos simultaneamente.



Processo
A imagem abaixo é um macro de toda a seqüência de um projeto do momento que ele é “imaginado” até a fase antes do desenvolvimento. Seguindo o fluxo a partir do primeiro “shape” vou descrever cada um deles.



Elaborar Solicitação de Serviço de Sistema(SSS): É o início de uma nova tarefa que o cliente solicita. Pode ser uma “Manutenção Corretiva”, “Manutenção Evolutiva”, “Manutenção Adaptativa” ou “Novo desenvolvimento” O cliente preenche um formulário de SSS e envia para o departamento responsável.

Analisar Solicitação de Serviço de Sistema(SSS): O gerente de projeto analisa o documento e utilizando da sua experiência verifica se é necessário o detalhamento da SSS.

Detalhamento da Solicitação de Serviço de Sistema(SSS): É possível detalhar a solicitação de várias formas: em uma reunião, por email, ... A idéia é poder tirar todas as dúvidas possíveis e verificar se existe a necessidade de “Modelagem de Processo de Negócio (MPN)”

Modelagem de Processo de Negócio (MPN): quando o gerente de projeto analisa a necessidade do MPN, ela deve ser executada e garante o entendimento do problema a ser resolvido. Esse processo deve ser feito entre o Gerente de Projeto, Analista de Negócio (se necessário) e Cliente. O nível de detalhamento do MPN pode ir desde um fluxo básico até um detalhamento específico com regras de negócios, casos de uso, detalhamento de requisitos funcionais, etc. Gerente e Cliente devem trabalhar em um ciclo constante até que todas as dúvidas sejam sanadas e documentadas. Não vou entrar no detalhe de como construir MPN pois é um assunto muito longo (quem sabe um próximo post. Qualquer dúvida enviem comentários).

Detalhar requisitos: Caso o Gerente de Projeto avalie que é necessário realizar o detalhamento de requisitos para a SSS em questão, ou ainda, em conseqüência a atividades de MPN, cabe ao Gerente indicar um Analista de Negócio responsável pelo detalhamento de requisitos. Esta definição é importante para conciliar a expectativa do cliente / solicitante com o prazo e a quantidade de informações disponíveis. Independente do projeto é necessário que o Analista de Negócio faça o levantamento de requisitos funcionais e não funcionais.
Uma breve explicação sobre requisitos funcionais e não funcionais: Quando o cliente solicita que deseja uma integração do ERP da companhia com as transportadoras, ele apenas faz o levantamento do processo de negócio e como isso deve funcionar. Na maioria das vezes ele não leva em consideração os requisitos não funcionais:
  • Processo: Entrega, Padrão e Implementação
  • Produto: Usabilidade, Confiança, Segurança, Eficiência, Performance e Capacidade
  • Externos: Restrições Legais, Restrições Econômicas e Interoperabilidade

Realizar estimativa preliminar de prazo e custo: O Gerente de Projeto junta toda a documentação até este ponto e analisa através de técnicas (pontos de função, experiência, ...) o tempo e custo do projeto e apresenta ao cliente.

Detalhamento do Plano de Projeto: o Gerente de Projeto reúne as informações disponíveis até o momento (documentação de MPN, Especificação Funcional, SSS e quaisquer outros documentos). Nesse documento são preenchidas informações como Riscos do Projeto, Prazo, Custo, Equipe do Projeto, Hardware e Software utilizados, etc. Com o documento finalizado é possível analisar se o projeto é viável ou não para o cliente. No caso negativo pode-se renegociar prazo, custo, requisitos com o cliente ou cancelar o mesmo.

Conclusão
Logo que comecei a implantar o CMMI ficou uma dúvida. Vou utilizar todo esse processo para simplesmente fazer uma atualização no meu sistema, como por exemplo criar mais uma informação dentro de um módulo? Logico que não. Como foi dito anteriormente, dependendo do tipo de projeto que será executado, criam-se documentações especificas para deixar as requisições do cliente documentadas. A idéia e gerenciar sem burocratizar!!!

Metodologias Ágeis - 3

MSF AGILE

O MSF (Microsoft Solutions Framework) é uma metodologia empírica criada pela MS para gerir o seu próprio desenvolvimento de TI.

O MSF Agile é a versão 4.0 da metodologia e herdou algumas características de suas versões anteriores e provavelmente uma dessas heranças é a maior diferença do MSF para o SCRUM que é a definição de cargos e funções da equipe que o MSF propõe.
O MSF Agile que também trabalha no conceito de SDLC (Software Development Life Cycle) que são aqueles famosos curtos prazos de desenvolvimento das iterações e entrega de um sub-produto funcional ao cliente, assim como uma definição de fazes de desenvolvimento (modelo espiral) e uma política de gerenciamento de risco bem interessante.

Uma perspectiva gráfica de como o MSF pretende tocar o projeto:




Os ciclos básicos do projeto o qual cada um trata de iterações exclusivas são compostos por fases. Esse esquema de fases foi outro ponto herdado das versões anteriores da metodologia.







São elas:

Envision (visão e escopo) – Avalia o que aquela iteração realmente é, sua oportunidade dando abertura para novas idéias.

Plan (planejamento) – Planejamento da iteração, nessa fase são criados os planos de risco, testes, deploy e etc...

Build (construção) – Fase do desenvolvimento propriamente dito.

Stabilize (estabilização da iteração)- Fase onde os testes devem ser concluídos com o fator bug zero

Deploy – Iteração vai para a produção com supervisão de toda equipe.



Essas fases cíclicas são feitas e acompanhadas a cada iteração a fim de proporcionar um controle de todo processo para a entrega do ‘software funcionando’.

Outro fator importante para se atentar é a segmentação da equipe integrante do projeto por papel de atuação, não é uma hierarquia uma vez que na teoria pelo menos não existe um chefe no meio.

A equipe enfim é dividida em:

Project Manager: Responsável pelo projeto como um todo, ele representa o cliente para a equipe e a equipe para o cliente.

Product Management: Gerencia o andamento do projeto e atua como um facilitador.

Architect: É o arquiteto da solução, um gestor técnico que traduzirá e organizará o que o Project Manager diz em uma forma que a equipe técnica possa entender.

Development: O desenvolvedor.

Test: O testador.

Release Management: Responsável por coordenar os releases das iterações, como quando uma entra em produção.
User Experience: Papel responsável por representar os usuários que irão operar a solução.


Uma apresentação completa do MSF Agile

Vale lembrar que para os projetos que são feitos no Visual Studio, a própria ferramenta possui um modulo de gerenciamento realizado através do MSF.

Aprendi bastante coisa a respeito de MSF Agile assistindo aos webcasts (recomendo) do
Fabio Câmara que é um gestor que domina o assunto.

terça-feira, 17 de junho de 2008

Metodologias Ágeis - 2

SCRUM

O SCRUM é uma metodologia ágil que prega que equipes auto-organizáveis devem entregar softwares funcionando constantemente para sua validação baseando-se nas iterações especificadas inicialmente e totalmente abertas a ajustes no decorrer do projeto.

No SCRUM não existe uma hierarquia de cargos e funções, todos da equipe devem ser aptos a executar todas as tarefas (desenvolvimento, teste, user experience e etc.) e devem se organizar por si só.

Alguns pontos do SCRUM:

• Product Backlog – Contém as características do projeto, uma especificação inicial, onde são listadas as iterações.

• Sprint
– Período curto de tempo onde uma iteração será desenvolvida, após esse período o produto resultante desse sprint será apresentado ao cliente para validação

• Sprint Backlog
– Iterações específicas do sprint .

• Standup Meeting – Reuniões diárias e rápidas afim da equipe se organizar dentro dos sprints e para os próximos.Nessas reuniões devem constar as seguintes perguntas para todos os membros da equipe:

1 – O que eu fiz ontem?

2 - O que eu vou fazer?

3 – Existe algum obstáculo que impede a continuidade?

O resultado dos sprints necessariamente deve ser apresentado em forma de produto (software funcionando), o qual será validado junto ao cliente (ou não).Uma iteração só é completa com o total aval do cliente, isso não quer dizer que posteriormente essa iteração não será adaptada, porém de forma gerenciada.

Durante o sprint é o único momento que a iteração em questão não deverá ser alterada para que o foco sempre seja mantido, caso haja uma alteração critica da ‘iteração v1’ com relação à ‘iteração v2’ o sprint deve ser cancelado e cabe ao gestor determinar o que será feito a seguir.

Uma apresentação bem legal sobre o SCRUM

Em resumo:

• Definir as iterações, eleger equipe das iterações, cada um é responsável pelo que faz e todos são responsáveis pelo projeto.

• Baseado em iterações

• Reuniões rápidas diárias

• Equipe auto-organizável -> A própria equipe se delega tarefas e atualiza o quadro de iterações

• Software funcionando ->Inclusive a equipe tem a liberdade de incrementar funcionalidades a fim de tornar a solução uma SOLUÇÃO, porém de forma controlada.

• Antecipar riscos

• Trabalhar junto ao cliente

segunda-feira, 16 de junho de 2008

Metodologias Ágeis

O Manifesto Ágil:

O manifesto ágil foi assinado em 2001 pelos principais profissionais veteranos na área de desenvolvimento de softwares engajados em discutir uma nova forma para melhor a velocidade no desenvolvimento de seus sistemas baseados em suas experiências de anos programando.

http://agilemanifesto.org/

A fim de estabelecer uma maneira viável de desenvolvimento de software algumas metodologias foram criadas utilizando as principais premissas ágeis:

Indivíduos e iterações <> processos e ferramentas
Software funcionando <> documentação abrangente
Colaboração do cliente <> negociação de contratos
Resposta a mudanças <> seguir planejamento rígido

Metodologias ágeis como
SCRUM, MSF AGILE e XP partem desses conceitos e de um modo geral não possuem grandes diferenças entre si.

As pesadas documentações que são propostas nas metodologias mais antigas, no agile são transformadas em rascunhos feitos a lápis mesmo durante as reuniões com o cliente.Esses rascunhos realmente servem como documento para o desenvolvimento do projeto, uma vez que provavelmente uma especificação não valerá durante todo projeto e ela sempre será adaptada durante o processo.Um fator importante que as metodologias ágeis pregam é que com a colaboração do cliente e a disponibilidade a encarar mudanças da equipe aquilo que era chamado de refação se transforma em implementação em uma solução funcional!

Como ponto principal, as iterações são funcionalidades do software que são mapeadas junto ao cliente, cada iteração pode receber uma nota que define sua complexidade e ao final de um período determinado ela será entregue ao cliente em forma de software funcionando.Dessa forma o cliente tem em mãos algo que realmente possa entender e validar enquanto ainda a tempo, diferentemente de um calhamaço de papel onde ele pode passar horas lendo sem entender uma palavra sequer.

Graças a Deus nessa nova abordagem de gestão o cliente/usuário deixou de ser o grande vilão da história onde os gestores passavam a maior parte do seu tempo se precavendo das investidas insanas de seus clientes malignos.Agora eles são exatamente o que deveriam ser....clientes, a parte mais interessada no projeto e no sucesso dele.
Por conta disso a importância de sempre mostrar ao cliente o que ele quer ver, o seu investimento sendo feito e parecendo com que ele espera que pareça.Inclusive as iterações funcionando que foram entregues já podem ser utilizadas pelo cliente antes mesmo do projeto ficar pronto, com isso acabamos de ganhar vários pontos do nosso sponsor.
Nem sempre é possível se entender o que um cliente quer e em muitos dos casos ele também não sabe o que quer, portanto a comunicação e mostrar que ele é parte integrante e ativa do projeto é importantíssimo.

Uma prática bem interessante que é adotada por vários gestores é a de utilizar as documentações do CMMI, o que ‘garante’ um certificado que agrada bastante os chefes e um controle formal do que é dito e feito no projeto.Tanto é interessante essa adoção pela CMMI que a metodologia da Microsoft o MSF possui duas frentes, o
MSF Agile e o MSF for CMMI.

As metodologias de gestão são conjuntos pré-definidos de processos que por si só cumprem sua função, porém existem algumas ferramentas que auxiliam (ou não) o controle desses processos, a Microsoft como não haveria de ser incluiu no
VSTS (Visual Studion Team System) o MSF, não por isso as outras metodologias também possuem seus ‘plug-ins’ para o Visual Studio: SCRUM, XP.

segunda-feira, 9 de junho de 2008

Resumo do TechEd 2008 - Orlando

Depois de uma semana em Orlando (EUA), estamos de volta ao Brasil com muitas novidades. Vou tentar nesse post fazer um resumo geral sobre tudo que aconteceu no evento da Microsoft. Foi uma semana inteira de palestras, aulas, conversas com profissionais da área sobre a área de desenvolvimento.

O TechEd foi o primeiro evento Internacional que participei e muito bem organizado. Cerca de 7000 inscritos e tudo funciona perfeitamente: estacionamento, checkin do evento, palestras, organização na alimentação (breakfast e lunch), salas aconchegantes, estrutura, ...

Foi utilizado apenas o lado North e South do Orange County Convention Center. Imaginem o tamanho do lugar para acomodar 7 mil pessoas tranquilamente, dar café da manhã e almoço. “Very Nice!!!”

No evento existia:

  • Wireless disponível em todo o local (somente as salas mais afastadas tiveram algum problema de conexão)
  • Muitas tomadas para carregar a bateria do notebook
  • Computadores e impressoras disponíveis por toda a convenção com acesso a internet
  • Quiosques com consultores para tirar dúvidas sobre qualquer produto da Microsoft
  • Lounge para os inscritos relaxarem (com tanta palestra, não sei como tinha tanta gente deitada nos pufes, hehehe...)
  • BreackOut Sessions (palestras maiores)
  • Instructor –led Labs (Instrutores/Palestrantes e 1 computador com 2 monitores para cada aluno)
  • HandsOn Labs com instrutores habilitados
  • Interactive Theaters (salas menores e discussões sobre algum assunto com os alunos)
  • Área de parceiros da Microsoft

A palestra Keynote Presentation com Bill Gates foi dividida em três áreas principais (User Iterations, Business Logic layer e Data (SQL Server Demo)). Foi muito interessante ver de perto uma das pessoas que mudou a história da tecnologia e ouvir mais sobre o futuro da tecnologia dentro da Microsoft.

O que mais se falou no evento

Agile (Agilidade no desenvolvimento de sistemas)

Uma das palavras que mais ouvimos nas palestras foi “Agile”. Isso abriu a mente para muitas coisas que fazemos dentro da empresa que não estão corretas. Hoje o desenvolvedor perde muito tempo criando/fazendo manutenção de aplicações. Utilizando algumas metodologias de levantamento de requisitos, controle de projetos/tarefas, “patterns & practices”, código dinâmico, etc. é possível agilizar o desenvolvimento de aplicações.

Nas apresentações foram utilizadas ferramentas para ajudar na agilidade do desenvolvimento de software como:

  • Visual Studio 2008 Team System principalmente para gerenciamento do projeto
  • WWF (Windows Workflow Foundation) para trabalhar com processos dentro da sua empresa e entre sistemas interagindo com ações humanas.
  • Biztalk Server 2006 R2 e R3 para serviços de troca de arquivos entre sistemas. Muitas palestras sobre o assunto, melhores práticas, utilização de Adapters, etc.

Web Testing and Unit Tests

Muitas palestras falando sobre o desenvolvimento de testes junto com o desenvolvimento da aplicação. A metodologia MVC, por exemplo, diz que é necessário desenvolver as classes de testes antes de iniciar o desenvolvimento da aplicação.

Testes são extremamente necessários e o Visual Studio Team System 2008 já tem muitas funcionalidades embutidas. Praticamente toda a parte de testes é automatizada, você precisa apenas programar os seus “Asserts”, afinal, a aplicação não conhece sua regra de negócio. Aqui alguma explicação de como implementar testes no Visual Studio.

The “Oslo” wave

“Oslo” wave é um codinome para um grande software (interface parecida com a do Word) aonde será possível gerenciar todos os processos dentro da sua empresa e com seus parceiros. A idéia é conseguir gerenciar toda sua área de tecnologia através de uma única ferramenta integrada com Visual Studio, BizTalk, WWF entre outras.

Junto com essa conversa temos a idéia do SOA, aonde temos serviços completamente desacoplados, mas aonde não existe controle e gerenciamento.

Um palestrante disse: “Será um software para as outras áreas odiarem menos o departamento de tecnologia”.

É possível encontrar problemas em seus servidores de aplicação de uma forma muito mais rápida, gerenciar seus processos. Muitas informações estão postadas em http://www.microsoft.com/soa/.

O que foi comentado sobre o “Oslo” dentro do TechEd é como seguir metodologias de desenvolvimento e programação dentro do .NET Framework 3.5 para aproveitar melhor as novidades que virão em breve. A idéia é muito interessante, mas os próprios consultores de Microsoft ainda não sabem exatamente como o software funcionará. Foram mostrados apenas patterns de desenvolvimento, mas nada muito concreto.

User Experiences

Falou-se bastante sobre RIA (Rich Internet Application), Silveslight 2.0 e integração com .NET e Visual Studio. “O que” e “como” você deve desenvolver a camada de interface para ajudar seu usuário a utilizar sua aplicação desde utilização de cores, sombra, navegação até conceitos de usabilidade.

Mobile

Como integrar sua aplicação Web/Windows com celulares, IPhone, Palm Tops, e aplicações “de bolso”. Hoje você consegue desenvolver a mesma aplicação para vários Mobiles diferentes, mas não é possível utilizar a mesma aplicação. Você precisa reescrever parte dela para funcionar. O melhor de tudo é quando você tem uma aplicação Web e seu usuário um navegador no Mobile. Nesse caso nenhum código diferente é necessário.

No Brasil a utilização de aplicações Mobile ainda é pequena, mas tende a crescer ao longo dos anos e quando o acesso a internet ficar mais barato.

Data (SQL Server)

Funcionalidades e integrações com o SQL Server. Não chegamos a assistir palestras sobre este assunto por ser um conteúdo mais voltado a DBAs. Foi mostrado uma aplicação no Keynote entre Silverlight, .Net e SQL Server integrados aonde o palestrante tirou uma foto ao vivo e a mesma apareceu na aplicação no mesmo instante.

Melhores práticas para criação de procs, views, selects foram muito discutidas nestas palestras.

Comentários finais

O evento foi sensacional e abre a mente! Precisamos sair do nosso “mundinho operacional” e pensar no futuro, em como utilizar e aproveitar o melhor das ferramentas que a Microsoft criou. Agilidade e Workflow devem ser implementados e gerenciados através de softwares eficientes para que você não tenha problemas posteriormente. Teste sua aplicação sempre!

Faça com que o usuário se sinta seguro e confortável utilizando sua aplicação. Modele a interface para que ele gaste menos tempo fazendo trabalhos corriqueiros. Gaste a maior parte do tempo de um projeto analisando o que o usuário deseja, levantamento de pré-requisitos, etc... o desenvolvimento e si, deve ser rápido e ágil.

----------------------------

Comentários básicos sobre a cidade

Fugindo um pouco da parte do TechEd, gostaria de postar algumas coisas interessantes sobre a cultura das pessoas nos EUA e nossa experiência em Orlando.

O povo americano vive muito bem e tem qualidade de vida. As ruas são limpas, as avenidas largas, prédios somente em áreas de escritórios (DownTown), muito verde e grama sempre aparada, as pessoas se respeitam no trânsito e em qualquer lugar.

As pessoas dizem que o americano é consumista! Mas todos os produtos são acessíveis, existem inúmeros OutLets com coisas muito baratas para se comprar (acho que é por isso que eu torrei meu dinheiro lá... hehehe).

Lógico que eles são o país que mais poluem, produzem mais lixo, tem uma política autoritária em relação aos outros países, mas não é este ponto que estou discutindo.

Apenas quero mostrar que eles tem qualidade de vida e conseguem aproveitar bastante isso.

Valeu pessoal e até o próximo post.

sexta-feira, 6 de junho de 2008

Multi-Channel E-commerce Solution with Microsoft Commerce Server 2007, ASP.NET, AJAX, Microsoft Silverlight, WPF and Foundation and Microsoft BizTalk

Commerce Server é uma solução pronta de eCommerce já testada que tem as principais funcionalidades de uma loja virtual e pode ser personalizado
Apesar de a palestra estar vazia os palestrantes falaram que existe muita gente no mundo utilizando a solução para melhorar suas lojas virtuais.

API Design Goals
  • Reduce developer ramp-up time
  • Out-of-box business logic layer
  • Clear separation of presentation logic and business logic
  • Extensibility
  • Run side by side with an existing CS2007
  • Multiple presentation suport


API Architecture

  • Commerce Server Provider
  • Store Finder Provider
  • Share Point
  • Search Provider

É possível extender as APIs facilmante.
Data Model – Busines Item Relationships(diagrama de classe via Design Mode)

Código fonte

  • Configurações do web.config
  • Definição de Services
  • Definição de clients
  • Using Microsoft.CommerceServer
  • QueryOperationResponse (call)
  • Operations
  • Pipeline
  • SiteMap Provider
  • SharePoint Integration

Web Parts
UI Components Build as ASP.NET 2.0 Web Parts.
Web Parts do Commerce Server são utilizadas na area administrative, anode É possível, por exemplo, configurar como você quer exibir sua lista de produtos, aonde ficará seu menu de produtos, ...
É possível criar novas Web Parts e configura-las da forma que achar necessário.

TAB Benefits
Acessar facilmente MS Multi Channel Retail Accelerator (TBD)
Integração direta com e suporte com CS team

A equipe responsável pelo CS procura pessoas que dêem feedback sobre o produto e ajudem eles a melhorarem a ferramenta.

Blog: http://blogs.msdn.com/commerce
Information Desk: csid@microsof.com

The Busy Microsoft .NET Developer’s Guide to Rules and Rules Engine

Regras para melhorar o processo de desenvolvimento.

Expert System/Rules Engine

What is a expert system?
“… an intelligent computer program that uses knowledge and interface procedures to solve problems that are difficult enough to require significant human expertise for their solution.”

What is a rules engine?
- a generalized expert system in which the expertise (the domain knowledge) is missing, to be entered via some form of programming language at a later date

Como organizar sua regra de negócios e manter essas regras enquanto o sistema vive não é uma trabalho fácil.
Queremos gerenciar isso “out of computer system” através de uma arquitetura fácil.

Architecture (typical)
  • interence engine (pattern matcher, agenda, execution engine)
  • Rule base
  • Working memomry

Você ou qualquer um pode escrever uma regra de negócio. Se isso não for muito bem estruturado você pode perder o foco.
Quais regras colocar na agenda para serem executadas!

A brief Glossary might be in order

  • Rete (ree-tee) algorithm
  • Forward-chaining
  • Backward-chaining

Facts vs Rules (People, Wheter, time and date).
Não existem links entre os Fatcts. Não existem links entre Rules (Não existe links entre objetos do mesmo tipo)
Analisar quais regras mudam os fatos e quais fatos mudam as regras.

Quanto mais rápido você definir e conhecer suas regras de negócios, mais rápido sua aplicação será desenvolvida.

Several rules engines implementation exist

  • iLOG Rules (.NET and java; commercial)
  • Drools/JBos Rules (.NET and Java,open-source)
  • NxBRE
  • WorkFlow Rules
  • BizTalk Server
  • Windows WorkFlow comes with a rule engine
  • Rules criadas como Schemas.

Dentre do código
Retorne um objeto contendo as informações e o erro como parte da coleção. Caso algum erro ocorra, você testa fora do componente. Não utilize “ThrowException”!!!

How LINQ Works: A Deep Dive into the Implementation of LINQ

Alex Turner

Já li alguma coisa sobre o assunto. LINQ é são Namespaces criados para acessar qualquer fonte de dados utilizando comandos SQL. Você pode acessar dados do SQL, Exchange, MS Office, XML apenas utilizando comandos SQL. É uma forma mais simples de chegar na informação necessária.

Quick Recap: Querying with LINQ
Utilizando o mesmo select em Providers diferentes

Com uma ferramenta (Lutz Roeder’s .Net Reflector - Download aqui e aqui) o palestrante simulou a utilização de Frameworks anteriores ao 3.5 exibindo com o código é gerado em frameworks anteriores.

Yield Return
Used in an iterator block to provide a value to the enumerator object or to signal the end of iteration. It takes one of the following forms:
  • yield return;
  • yield break;
  • LINQ to Objects Query Translation (Query Extensions,Extension Methods, Query Methods)
  • LINQ tem um modelo de “Design” para conectar a fonte de dados.
  • Delegate de funções
  • Expression Tree View
Link to object
Code that directly implements your intent

LINK to SQL
Data that represents your intent

The difference is all in the extension methods!!!

Window Communication Foundation Adapters in BizTalk Server 2006 R2

Aaron Skonnard
  • BizTalk 2004/2006 suports Web Services
  • Modern SOA’s need more flexibility
  • R2 comes with a new set of WCF adpters
  • Full integration with WCF runtime
  • Bring WCF channels into BTS messaging
  • Now possible to leverage WS-* in Biztalk
  • WCF Fundamentals
  • Configurando a aplicação no App.config
  • WCF Runtime Architecture
  • The WCF adapter complete de bridge between BTS asn .NET 3.0
  • 6 Adapters de WCF para o BizTalk
  • Generic Service Contracts
  • Allows ports to process any message shape
  • Send Adapter Architecture
  • No Custom Adapter é possível Importar informações do arquivo App.config
  • Receive Adapter Architecture ( Receives messages using a WCF Channel)
  • Message Publishing Options (Envelope, Body and Path)
  • Exposing Service Metadata (user friendly Web Service)
  • Security Options
  • Transactions Options
  • WCF Adapters in Orchestration (demo)
  • WCF BAM Interceptor

Technical drilldown into Microsoft ESB Guidance

Palestrante: Brian Loesgen (http://geekswithblogs.net/bloesgen)

Enterprise Service Bus é um produto que engloba várias metodologias (MOM + SOA + EAI + EDA). A idéia é utiliza-lo em grandes projetos e empresas. Abaixo segue um pouco do que foi falado durante a palestra.
O melhor a fazer é pegar o PPT dessa apresentação. Vou ver se consigo posteriormente e postar nos comentários. Existem vários desenhos de arquiteturas do sistemas que vale a pena olhar.


Benefits of an ESB
  • Services: Starting out great, A new wild Kingdom.
  • Services Consumption and Brokered Comunication (inserindo um layer entre as aplicações para obter mais controle)
  • Enterprise Service Bus (ESB = MOM + SOA + EAI + EDA)

Whats give you

  • Loosely-coupled messaging envoirment
  • Registri-drivin message routing
  • Itinerary-based process
  • Logically-centralized messaging fabric

Why you want it

  • High levels of reuse
  • Lower operational coast
  • Dynamic business changes
  • Collection point of business, services and exception metrics

Anotações

  • Microsoft ESB Guidance (um slide com todas as funcionalidades do ESB) - Build on BizTalk Server 2006 R2
  • Reference Architeture (On-ramps -> Core ESB Services-> Off-ramps)
  • Core Engine (Itinerary Mechanism) – Itinerary and itinerary services
  • Trabalha com Schemas
  • On-Ramp Itinerary have four endpoints (one way SOAP, one way WCF, request-response SOAP, request-response WCF)
  • Off-Ramps implements two Dinamic Biztalk ports (one way fire and forgot port, a soliciti/response port)
  • Core Engine: Itinerary Mechanism (Itinerary components)
  • Core Engine: Resolve Mechanism
  • Core Engine: Caching
  • Core Engine: Adapter Providers
  • SOA Governance Integration
  • SOA Governance Architecture

Depois da aprensetaçao do modelo ESB ele passou ao DEMO e exemplos de como trabalhar com a ferramenta.

quinta-feira, 5 de junho de 2008

Create your Own Providers For The Ultimate Flexibility

Paul D. Sheriff (http://www.pdsa.com/)

Uma palestra muito boa e específica de como criar seu próprio Provider. Além disso foi uma aula de DesignPatters, criando tudo dinamicamente, utilizando Bridge Pattern e Hierarquia entre outros.

What is a Provider
Um Provider é um componente que se conecta a alguma fonte de dados (banco de dados, xml, txt, email, ...)

  • Why use a provider
  • Examples of Providers
  • Criando classes dinamicamente(CreateClass(“Namespace.class”)). Passando o Assembly Location e o nome da Classe é possível instanciar qualquer classe.
  • Configurando o WebConfig com Providers
  • Passando os DataProviders como parâmetro para as funções que instanciam o objeto. Basta alterar o parâmetro do web.config para buscar informações de outra fonte de dados.
  • Web.config->
  • Configurando propriedades do web.confing em uma .cs utilizando “[ConfigurationProperty(“paramName”)]
  • ConfigurationManager.GetSection(“SectionName”) busca uma sessão no Web.config
  • Depois de todos o Provicer criado você pode coloca-lo na toolbar e utiliza-lo em qualquer parte da sua aplicação.

Exemplos em: http://www.pdsa.com/TechEd

Degrees of Freedom Port Binding In Microsoft BizTalk Server

What is port Binding
Orchestration define logical messaging ports
Binding = Associating logical with physical ports

  • Messaging Architecture
  • Reusable business processes requires flexibility

The Binding Options

  • Specified
  • Dynamic
  • Direct
  • Role links

Dynamic Send Ports

  • Address and adapter chosen at runtime
  • Pipelines, maps, etc configured on the send port

Dica: Configure sua send port and recive port fisicamente. Você terá menos trabalho se tiver que mudar estas configurações. Se você configurar em portas lógicas na orquestração e precisar muda-las, é necessário alterar a orquestração, fazer o Build e colocar em produção.

Direct Binding

  • Message Box
  • Shared Ports
  • Self-Correlating

Undestanding Role Links

  • Business process are often reused
  • Logical ports should map to partner ports
  • Role links provide logical representation of role

Na maior parte da apresentação Matt demosntrou através do software:

  • Como configurar Send Ports, Recive Ports dentro da orquestração e através do BizTalk Administration.
  • Como funciona o MessageBox
  • promovendo propriedades
  • Como criar exeptions nas orquestrações

Applied Web Testing with Microsoft Visual Studio Team System

Palestra com Mickey Gosset (http://www.teamsystemrocks.com/)
  • Web testing in VSTS is a mature testing tool
  • Validation rules Extraction Rules
  • Comente sempre seus códigos de testes ou você não lembrará depois de 6 meses o que fez.
  • Depois de rodar os testes você consegue ver relatórios detalhados sobre cada item desenvolvido.
  • Simulated think times (configura-se para testar vários acessos, como na vida real)
  • Arquivo .webtest que gera uma configuração de testes web.
  • Um WebTest pode chamar outro WebTest (VS2008)
  • Extract WebTest para gerar o arquivo de testes.
  • Test Data Source Wizard
  • Microsoft.VisualStudio.TextTool.WebTesting
  • Microsoft.VisualStudio.TextTool.WebTesting.Rules
  • Herdou a classe “ExtractionRule” no demo
  • Mostrou principalmente como configurar o arquivo .webtest para atender as suas necessidades (receber e enviar parâmetros, variáveis de sessão, cookies, viewstate,...)
  • Pessoas não utilzam por ter medo ou não conhecer

Data Access Layer: Architectural Concerns for Object/Relation Mappers (O/R-M) with examples in NHibernate

Palestra com Jeffrey Palermo (http://www.partywithpalermo.com/)

Anotei as palestras que eu assistiria no Brasil e pelo visto essa deve ser uma palestra interessante, apenas pelo nome... hehehe!!!
Palestra muito técnica e profunda sobre o assunto

Existem hoje milhões de formas (Arquiteturas) de desenvolver. Você não pode sempre utilizar o mesmo porque novos Patterns são criados para melhoras o desenvolvimento. É necessários crescer junto com as novas arquiteturas.

Muitas pessoas na sala levantaram a mão quando se perguntou sobre quem estava reescrevendo aplicações. Ele mostrou que é necessário mudar!!!

São necessários criar objetos e relational mappings entre eles para seu sistema ser arquitetado melhor. Se você não utilizar modelo de objetos, seu sistema não vai durar muito tempo.

Book: Domain-Driven Design – Tracking Complexity in the Heart of Software

Você consegue mudar para o modelo orientado a objeto sem reescrever seu código?
Se você criou seu código sem objetos e relacionamentos, fica difícil aproveitar muito sem ter que reescrever a maior parte do sistema novamente.
  • Layered Onion Architeture (na forma de uma Onion Ring na apresentação)
  • Loose Coupling (demo with code)
  • NHibernate class (Add Reference)
  • Nunca coloque acesso a banco de dados no seu UI
  • Trabalhe com Class Interfaces (todas as especificações necessárias estarão nela e será ecessário segui-las)
  • Não utilize referencias. Sempre desenvolva os objetos desacoplados.

É possível testar aplicações sem Objetos Orientados?
Normalmente em .Net você leva alguns minutos para criar testes unitários quando utiliza Objetos Orientados.
Sem uma arquitetura adequada não é possível testar sua aplicação.

É possível testar o acesso a dados isoladamente?
Sim! É possível testar qualquer coisa se os pontos estiverem bem definidos.
Siga os passos abaixo:

  • Local database
  • Test setup
  • Test execution
  • Test teardown
  • Automate, Automate, Automate

É necessário testar se os relacionamentos dos dados estão corretos dentro do Banco de dados

  • Na primeira linha delete tudo do seu banco de dados
  • Em seguida crie novos registros nas tabelas que deseja testar para saber se todos os relacionamentos funcionaram.

Mudando Schemas
O modelo de objeto deve ser mudado constantemente tanto no banco de dados. Com sua aplicação rodando em cima do modelo de banco de dados, você não precisa mudar seu código.

Relatórios
Don’t report from the OLTP Schema and the resto f the 80/20 rule.

Mapping Boundaries
Map Groups of Objects along natural boundaries

Mappings Tips

  • Use collections mappings only where necessary
  • Lverage component mapping
  • Keep database details in the database
  • Don’t’t expose collectionsas properties (do you support collection.Clear())?
  • Keep it behind interface


Architecting Rich Internet Aplicattions

Blog do Palestrante (http://blogs.msdn.com/hanuk)

Ele trabalha muito com Silverlight para criar suas aplicações.
Foi a primeira palestra mais simples, que mostro o básico sobre uma ferramenta. O palestrante não foi nada confiante. Sua aplicação demorou a rodar porque continha erros. Foi uma palestra não produtiva. Com certeza ele conhece muito mais de "código" do que conceito de RIA.
De qualquer forma, sempre dá pra tirar algum proveito do conteúdo.

Vantagens da utilização de RIA

  • Rich User Expiriences
  • Offline Capable
  • Stateful processing
  • Easy to develop
  • Avaliable skills

Search dentro dos browsers pode ser um problema!!!

RIA Plataforms
Silverlight 2, WPF/XBAP, AJAX

Silverlight + SDK
Você precisa do SDK Libraries e do plugin do silverlight instalado no browser

Clientacccesspolicy.xml -> arquivo de política de acessos.

Foi criado uma simples aplicação Silverlight 2.0 e .Net. Ele mostrou um pouco da criação do layout da página utilizando componentes disponíveis.
Foi feito um formulário com um botão de submit exibindo como pegar as informações postadas.

  • Integration with Data and Services
  • Cloud Service Patterns (using orquestration, proxy)

That's It!! :(

quarta-feira, 4 de junho de 2008

Microsoft.NET FrameWork and BizTalk Server – Best Pratices with an Eye Toward “Oslo”

Palestra com Jon Flanders (www.masteringbiztalk.com)

O que é Oslo?
Oslo referesse a onda de produtos da Microsoft e Tecnologias. Inclui um novo repositório e editor, uma nova versão do WWF, um novo servidor de processo for WF, BizTalk e outras aplicações.

WCF (Windows Communication Foundation) e WWF (Windows WorkFlow Foundation). Microsoft .Net 3.5 prove a convergência das duas tecnologias.

O que eu posso fazer agora para quando o “Oslo” chegar e a integração for necessária.
  • Comece a escrever sua aplicação em 3.0/3.5
  • Utilize XAML
  • Building custom activities
  • Utilize WCF 3.5 Send and Receive Activities
  • Use WorkflowServiceHost even whennot exposing workflows as services (Use NetNamedPipesBinding)

O que existe de bom no .NET 3.5

  • Convergência entre WWF e WCF
  • Modele seus serviços utilizando WWF

Jon exibiu como desenvolver uma regra de negócio utilizando WWF. Hoje, antes do almoço tentei fazer um LAB, mas não foi uma boa experiência. Agora ficou mais fácil entender como desenvolver um fluxo em WWF.
É possível utilizar portas e adaptadores do BizTalk para acessar WWF process que foram criados. Também é possível fazer isso através do orchestration.

Porque criar um workflow para um processo pequeno?
Muitos desenvolvedores colocam algumas linhas de código, mas você perde a VISIBILIDADE DO SISTEMA.

  • WorkFlow Monitor para monitorar todos os processos do WWF. Funciona como o debugger de orquestrações do BizTalk.
  • Quando se altera alguma configuração não é necessário fazer o Buid novamente ou atualizar o GAC por exemplo.

Using BizTalk Server 2006 R2

  • Prefer the WWF Adapter whenever possible
  • New WCF capabilities show us that WCF contnues to get emphasis.
  • WCF will be the messaging layer for BizTalk Server vNext
  • Prefer LOB WCF Adapter Pack and Software
  • BZ vNext will run XLANG and WorkFlow Foundation side-by-side
  • Options for re-use across XLANG and WorkFlow Foundation

Mais informações diretamente no blog do Jon!

The Science Behind Creating a Great User Experience

A sala simplesmente lotou. Estou sentando no fundo da sala carregando o notebook para não precisar reescrever tudo depois.

  • Custo da Interação
  • KeyStrokes
  • Coast of Pressing Keys (tabela com teclas mais acessadas)
  • KeyStroke Binding Observation
  • Discoverability – vs shortcuts
  • Mouse Travel Distances (Mouse é muito mais utilizado que shortcuts 80% para 5%)
  • Brain Power Needed to run UI
  • Sucking Brain Power
  • Qualidade do monitor varia. Pense nisso quando crier qualquer aplicação
  • Informações em paralelo (serail vs paralel)
  • Noise
  • Tools of UI Masters
  • Olhos são atraídos por grandes contrastes
  • Color – work with HSL instead og RGB.Workwith a limited palette
  • Creating color palette (site demo)
  • Color Tips – Use saturation like contrast and offer users fewer color choices
  • Shadow – Greating for floating UI elements
  • Size – Dados mais relevantes com tamanho maior. Combine large size with low contrats
  • Motion/Animation (smallest effective difference rules apply. Aceleração e desaceleração são bons. Fade in and out também.
  • The Essence of Clarity (size, saturation, Contrast,...)
  • Não perder a atenção de onde o mouse está (Mouse over and Mouse Dwon)
  • Reduzindo o custo da interação
  • Simplificando atalhos
  • Mouse travel (Position UI elements “Closer” to the mouse)
  • If a click moves UI below it,move the mouse.
  • Layered Interactions
  • Pare de pensar que seu cliente é chato e tente melhorar a navegação de sua aplicação.

Uma comparação com o tempo que uma pessoa perde com a falta de interação com a aplicação vs o salário dela. Em termos uma companhia perde cerca de 5% a 10% de produtividade.

Comparando o IPod com o Window Móbile
Os dois produtos foram lançados na mesma época, mas o Ipod vendeu muito mais por ser um produto muito mais interativo e fácil de utilizar. Lembrando que o IPod custa $399 e o Windows Móbile pode ser adquirido por $99.

Uma coisa interessante
O Palestrante tem um software que anota toda a interação com o teclado e mouse. Provavelmente isso depois deve gerar relatórios que podem ajudar a melhorar a navegação do usuário dentro de aplicações.

Edward R. Tufte,o palestrante tem um livro sobre o assunto (ISBN: 0961392126)

Rich Interactive Applications for eCommerce on the Microsoft Plataform

Essa foi uma palestra muito legal sobre Commerce Server 2007. Foi uma palestra muito mais comercial do que técnica, mas mostrou o poder e as novas funcionalidades previstas no software.

  • Microsoft prove com o CS 2007 serviços melhores do que as lojas comuns de e-Commerce.
  • Maior poder na ferramenta para criar novas habilidades e RIA Applications.
  • Sneak Peek: Next API Architeture (Uma única API que tem todas as funcionalidades)
  • SharePoint Provider, Commerce Server Provider, e.g. Store Finder Provider, e.g. Search Provider
  • Web Part Presentation, Silverlight Presentation, ASP.NET Presentation
  • Beta da próxima versão disponível em 2 months.
  • Demos de lojas rodando em CS 2007 e SilverLight (QuickSilver Europe) http://www.quicksilver-store.com/, http://www.consumercrafts.com/
  • Bundle – 1 produto = 17 produtos quando inserido na cesta.
  • Yves St. Laurent, Rossi,Stella McCartney
  • http://www.guccigroup.com/
  • http://www.sergiorossi.com/ (Busca por style, color e size)
  • http://www.stellamccartney.com/ (muito bom)
  • http://www.pilgrim.dk/ (Muito bom)
  • Suporte ao Windows server 2008
  • Suporte ao Win Vista SP 1
  • Suporte ao .Net framwork 3.5
  • Suporte ao IIS 7 Classisc e Intgrated PipeLine Mode
  • Site bug fixes
  • MultiShop Channel fones
  • Demo de uma aplicação rodando em um Palm Top (Busca simples, resultado agrupado em uma arvore).
  • Colocar o gerenciador no SharePoint

Automated Remote MS BizTalk Server Deployment with MS Visual Studio Team Fundation Server

Uma palestra de BizTalk que não estava no nosso cronograma... mas acabamos almoçando em 15 minutos pra aproveitar.

O palestrante mostrou formas de trabalhar com projetos BizTalk e fazer Checkin, Checkout and deploys no Visual Studio Team System
  • Wfetch tool - Ferramenta que ajuda a simular chamadas para o BizTalk. Muito boa pela apresentação. Serve principalmente para debugar sua aplicação.
  • Team Build Suport in R3
  • FrameWork separ tipos de arquivos no projeto (Schemas, pipelines, maps, ...)
  • Versão R3 suporta VS 2008
  • Team Build 2008/2005 Compability
  • Build direto no servidor que você desejar
  • Depois do compile sempre verifique o Output View para ver se não houve algum Warning ou Error
  • Team Builder tem bons relatórios
  • No arquivo de configuração importe a classe do TeamBuilder para trabalhar com ele.

Building Web Services with the Service Factory Modeling Edition

A idéia é conseguir desenvolver Web Services dividindo o trabalho dentro de uma ou mais equipes assim como desenvolver qualquer projeto em equipe.
Existem várias maneiras de criar WebServices:

  • Via Wizard: Não é bom porque você pode esquecer alguma coisa no meio do caminho e ter que refazer o wizard.
  • Construtor de códigos: Trazem muitas funcionalidades que você acaba não utilizando e seu serviço pode fica pesado.
  • Fazer você mesmo seu próprio WS: pode ser um pouco demorado por você precisar desenvolver tudo “na mão”.

O que o modelo provê:

  • Ajuda a criar coisas específicas para o projeto
  • Utiliza processo de desenvolvimento em equipe
  • Incorpora vários tipos de conteúdo.
  • Teams Building Web services
  • Ferramenta de desenvolvimento em equipes
  • Goals, Motivations and Scope (For Web Developers and For Framework and Tool Developers)
  • 3 modelos de desenvolvimento: Service Contract, Data Contract and Host.
  • The 4D’s: Design, Decide, Develop, Deploy
  • Existe um ”Service Factory” instalado no VS 2008
  • ProjectMapping.xml na pasta Solution Items
  • É possível utilizar Drag and Drop components services
  • É possível relacionar as caixas também com Drag and Drop
  • Você relaciona uma mensagem com um projeto e configura a mensagem de entrada e saída.
  • No próprio desing é possível configurar “Faults”
  • ASMX or WCF Extensions
  • A lógica, design e testes ficam em arquivos separados.
  • Funciona totalmente desacoplado de outros sistemas.
  • Utilizar XPATH name do projeto curtos porque o VS 2008 tem um BUG.
  • É possível utilizar vários tipos de autenticação (Windows Forms, AD, Passaport,...)
  • Gerenciamento de proxy para os Web Services

O palestrante desenvolveu tudo online e deu várias dicas de como utilizar melhor esse modelo de desenvolvimento. Posteriormente podemos buscar mais detalhes na internet.

Car or MotoCycle: Choosing de ASP.NET MVC FrameWork

Assisti essa palestra ontem mas estou postando o email somente hoje. A bateria do notebook acabou e só chegamos no hotel a noite, já cansados.

Quem deu a palestra foi um cara muito engrassado. O link do seu blog é http://www.hanselman.com/.

A palestra foi muito boa e lotado de gente.
Segue minhas anotações:

  • System.Web.Abstraction.dll
  • System.Web.Mvc.dll
  • System.Web.Routing.dll
  • This is not Web Form 4.0
  • Utilizar MVC por ter flexibilidade. É possível utilizar outros modelos que também são tão bons quanto o MVC
  • Escreva os testes primeiro
  • Bom para utilizar com VS 2008 devido a integração
  • Você pode utilizar AJAX, JQUERY com MVC, mas isso apenas nas partes que forem necessárias
  • Segurança (É seguro?)
  • Model, View and Controller
  • Existem 3 pastas diferentes Controllers, Models and View no projeto VS.
  • No arquivo Global.asax existem configurações de “root” que podem ser criadas.
  • Routes.MapRoute(...). Isso configura o nome da action e qual controller ele utiliza.
  • Explicação sobre as classes System.Web.Mvc.IControler e
  • System.Web.Mvc.Mvchandler.ProcessRequest
  • Existe uma classe de debug de rotas “RouteDebugger“.
  • Html.ActionLink in html code (.aspx,.ascx, …)
  • View Engines (MVCContrib, NHaml)
  • Testing

Valeu galera... logo mais postarei os comentários dos cursos de hoje.

terça-feira, 3 de junho de 2008

Pragmatic Architeture: Debbugin and Monitoring

Debbugin vs Monitoring
Monitoring: Manter a aplicação rodando, saber se o servidor não está sobrecaregado. Se algum problema acontecer, estar preparado. Saber se o código do programador foi desenvolvido da melhor forma, se é a melhor forma para o ambiente que você tem.
Debuggin: Procurar o problema dentro da sua aplicação. Existem padrões de desenvolvimento de debugs. Isso faz com que você tenha seu sistema com menos bugs em homologação e produção.

Como resolver o problema que acontece somente no servidor de produção?
Não podemos urilizar Brake Points em produção e rodar nossa aplicação, correto!!! Muito menos coisas como printf(), console.writeline() or if(debug).
Se utilizarmos algo como debug.GetDebug... temos o problema de um arquivo muito grande a ser lido (no mínimo 4 GB).

A melhor forma é utilizar o Log.Write(exception) ou throw new ThisShowNewTriggerEx(); dentro de um código try catch.

A discussão vai mais fundo quando você necessita imaginar em casa linha de código do seu sistema o que aconteceria se a força acabasse, por exemplo. Como tratar a “exeption” em cada ponto do seu sistema. Você precisa estar preparado para estes problemas.

O palestrante falou sobre os possíveis problemas de uma loja virtua como a Amazon.com.

Em caso de problemas com o seu sistema tomar todas as medidas possíveis como:

  • Enviar mensagens para as pessoas responsáveis (email, sms)
  • Utilizar EventViewer (não somente isso)
  • Utilizar no Try Catch da sua aplicação algo como o Debug.Alert() e implementar essa função.

Os serviços da aplicação devem ser o máximo possível desacoplados.Se o Banco de Dados parar por qualquer motivo a aplicação poder continuar funcionando “offline” até que o mesmo volte a funcionar. Tudo depende do tempo disponível que você tem para implementar essas funcionalidades.

No momento das perguntas foi falado sobre ataques Hackers e robôs. É preciso mais uma vez estar preparado para este problema.

Em resumo, precisa-se ter o máximo possível de monitoramento do seu sistema e pensar o que fazer quando algum problema ocorrer.

Microsoft Communication Fundation Syndication AJAX and REST Service in WEB 2.0 with the Microsoft .NET Framework 3.5

Essa não foi uma palestra nada fácil, ainda mais com uma sala pequena e lotada. Fiquei sentado no chão e o palestrante falava muito rápido. De qualquer forma, o mais importante é que consegui o link do site dele. Heheheh (http://blogs.msdn.com/bags/).

Ele falou muito sobre como funcionava a acesso a dados no início da internet, HTTP Verbs (GET, POSTS, DELETE, PUT).
Explicou bastante sobre segurança e como promover dados com segurança. Falou que Web Services podem ser perigosos se não forem desenvolvidos com segurança. A melhor forma é utilizar AJAX. Segue um resumo de como fazer isso:
No C# file criar tags específicas do AJAX
  • No web.config criar os serviços e o proxy
  • Chamar sua função no .aspx via JavaScript (é possível e recomendando utilizar JSON)
  • Debug do seu código AJAX pelo Visual Studio

Microsoft Visual Studio 2008 IDE Tips and Tricks

Praticamente um curso rápido de truques, teclas de atalho para diminuir o tempo de desenvolvimento. Não perca tempo fazendo sempre a mesma coisa.
Algumas coisas esão em Português e outras em Inglês... desculpem... mas os palestrantes também falam muito rápido and my brain need to process two languages.

  • 42 Ways to maximize your Visual Studio IDE Experiences
  • No VS Help ->Samples (muito bons para pegar bons exemplos)
  • Mostrou formas de fazer buscas com teclas de atalho e CTRL+F
  • Search and Replace “Look in”
  • F3 utiliza sua última busca
  • Selecione um grupo de código utilizando ALT e colar no Word, cola sem os spaços.
  • Edit -> Advanced (várias configurações para formatação do código)
  • CTRL + F5 –Build Without Debug
  • Coloque o código que vocé sempre utilize na ToolBar e utilze ele quando necessário com DropDown
  • Utilizando TAB para selecionar código
  • Foreach.snippet -> Crie seus próprios snippet files para ajudar o usuário no VS
  • In Command Window create alias tags
  • CLTR + TAB para navegar entre os arquivos abertos
  • Crie suas teclas de atalho personalizadas para achar classes.
  • Formatando fonte (Envoirment font)
  • Tools -> Import/Export settings (Existem coleções prontas e você pode baixar pela internet).
  • CTRL para sumir com a lista de classes/propriedades.
  • Window -> Window Layout mode
  • SHIFT + ALT + Enter para full screen
  • SHIFT + ESC para esconder as janelas
  • Tools ->Macros -> Macro Explorer (Grave suas ações para utilizar depois).
  • Crie teclas de atalho para suas macros.
  • Break Point and TracePoint(escreve no Output o que você desejar)
  • Select Break Point and click “Hit Count” para contra o número de iterações
  • CTRL + F9 – Disable Break Point
  • Break Point Window
  • SHIFT + F11 -> Sai da função durante do debug
  • Immediate Window para mudar o valor de variáveis, chamar funções durante o debug
  • Sort import classes with right mouse button inside de code

KeyNote with Bill Gates

Chegamos ao evento mais cedo para tomar café da manhã. Hoje é a abertura oficial do Evento e temos cerca de 7 mil pessoas. Só a área do breakfast é enorme. A fila para a Palestra inicial estava gigante (tem gente que quer até sentir o bafo do Sr. Bill.. hehehe).
Café da manhã com muita fruta, pão e suco. Mas quem desejar pode comer hamburger, bacon, ovos e tudo pra estragar o estômago. É meu segundo dia aqui e parece que estou grávido de tanto que meu estômago trabalha pra digerir essa comida.. .hehehe. Bom... vamos ao que interessa.

Na abertura principal do evento tivemos Bill Gates como apresentador principal. De início ele exibiu um vídeo brincando e falando com pessoas importantes como atores, políticos. Muito engaçado e a galera se divertiu.

Abaixo segue as minhas anotações:
  • Melhora na tecnologia em todas as áreas (Hardware e Software)
  • Mudanças revolucionárias (Touch Pad, Pen Key, Teleconference)
  • User Iterations
  • Application development today (linguagens diferente unindo pessoas)
  • Oportunidade para desenvolvedores
  • Presentation (User experiences). Indiano apresentou alguns demos feitos em Silverlight.

Business Logic layer: Tools and Modeling.

  • Architeture Explorer
  • Validação de Layers
  • Rename Reflection (altera o sistema, altera a tabela)
  • Dependência entre serviços, sistemas, classes como no Enterprise Architect

Data (SQL Server Demo)

  • Sincronização de dados (Mobile Silverlight)
  • SQL gera um XML com select na URL para outros sistemas acessarem.
  • Acesso a dados como umserviço

Futuro do Desenvolvimento de Aplicações

  • Desing e Execução (Repositório e Servidor de Processos)

Demo of Robotic Group (Uma apresentação ao vivo com um robô)

segunda-feira, 2 de junho de 2008

First day in Orlando at TechEd Microsoft Event

Muito calor e inglês no cérebro, fomos para o primeiro dia do TechED

Mesmo casado e com a Isabella por vir, os instintos masculinos estão ligados. Acabamos entrando no ônibus que estava indo para uma feira de beleza "First Fashion ..."cheia de modelos. Mas esta é uma outra história.

Hoje assisti a palestra: Build a .NET 3.5 Application in a Day with Microsft Visual Studio Team System 2008

Muitas funcionalidades para trabalhar em equipe. Abaixo segue minhas anotações durante a palestra. Qualquer dúvida que tiverem, por favor postem.

  • Team Explorer
  • File – New team projects
  • Integration with Share Point
  • Project Groups on Top Ten
  • Project Security and access
  • Team Queries
  • Work List and Work Item (Tasks). You have 10 templates. Toll bar “Team”.
  • Areas and Iterations
  • Documentation Script Scenario as template (.doc). Linked with task list.
  • Task list history, task list comment.
  • Export tasks to a excel file. Integration Excel/VS2008 Team System. Work with conflict when synchronize with VS2008 TS
  • Links – can link any document with task
  • Team System Web Access
  • Manage Workspaces (copy of eclipse … hehehe)
  • Source control explorer
  • Check-in and Check-out
  • Add Solution Source Control
  • Build Definitions
  • Queue build
  • Click with Right mouse button In code and “Create Unique Test”. We have “Assert Class”
    In Menu -> Test we can open a view to see all Unique Tests and run all.
  • In VS you have a Queue run with Unit Tests
  • You have a test result window to see de status of Unit Tests
  • Hello world Solution Exhibition
  • Tem Foundation Server and VS Team System 2008 Team Suite
  • Security with everything and by project
  • You can get the Trial VSTS 2008 as Microsoft site
  • Share Point and Reposting Services
  • Active Directory (Manage Users with AD Groups)
  • Microsoft Solution Framework (Software Development Framework)
  • CMMI Process Level
  • MSF Agile vs MSF CMMI
  • Classification (Area and Iterations. Both are required fields of all built-in work items)
  • Managing work Items (Integration with many softwares). We have a API to customize with you want
  • Reports
  • Powerfull Tools – In Visual Studio click Tools -> Process Editor -> Web TeamTypes
  • Import Power Full Tools
  • Create personal fields and rule fields to tasks.
  • Configure itens using xml files like VersionControl.xml, Clasification.xml, FileMapping.xml
    Version Control
  • Creating Branch. Use branch/dev/ to developer your application branch/dev2/ when your application was estabilizated and test.
  • Source Control Merge Wizard
  • Source Control Settings (Check out settings,Check Policy). In Check Policies you can put “Need testes” , need coments””. If developer don’t do some of Policies checks,VS give you a erro when Build project. When de developer team work in a project and the project lead create a new Police, all developer team need to follow the new Police. (They need to close and open solution again)
  • Shelving allows you a way to save changes to the server, without checkin.
  • Integrated Reporting Service
  • Reporting Warehouse
  • DataBase Management - Para mehorar o trabalho do DBA utilizar arquivos de schema para atualizar o BD
  • File-> New -> Data Base Project. Não adicionar ao Source Control antes de pronto para não ocupar espaço no servidor. Clique como botão direito do mouse no projeto e “”Add Source Control”
  • WorkFlow Approval Update DB
  • Compare Database (like TOAD) and update DB. It’s possible do Checkin/checkout of all Db objects because they are in Source Control.
  • You can create multiple tests for DB.`
  • Test vs Debug (discussion about 2 different things). Code Coverage
  • Cuidado ao criar New Web Site e colocar no SourceControl. Porque? Não se criam alguns arquivos como Solution(.sln). Desenvolvedores diferentes terão problema no Checkin/Checkout.
  • Unit Tests, Web Tests, Load Tests, Manual Tests, Third-Part Tests (supports areas that Microsoft left out), Ordered Tests (It’s a Container with other testes).
  • Test List Editor and Test View
  • Test Configuration Manager

Amanhã tem mais post do TechEd pra vocês.