Postagens

Impressões sobre a prova 70-532 (Developing Microsoft Azure Solutions)

Hoje passei na prova 70-532 da Microsoft, sobre desenvolvimento na plataforma Azure. Essa prova é um dos pré-requisitos para a certificação Microsoft Certified Solutions Associate: Cloud Platform. Vou aqui passar um pouco da minha experiência com a prova, como eu me preparei e algumas dicas. Estrutura da prova Já fazia algum tempo que eu não fazia uma prova de certificação da Microsoft e o formato da prova mudou um pouco. Nesta seção aqui vou explicar como é a dinâmica da prova, que provavelmente vale para outros testes de certificação da Microsoft também. Foram 48 perguntas de vários tipos para um teste de tempo limite de 150 minutos. Essas perguntas são divididas em várias seções isoladas mas que compartilham o tempo geral. Quando eu digo isolada, quer dizer que uma vez respondidas as questões da seção, não se pode voltar nelas para se alterar. Ou seja, deve-se terminar por completo uma seção para que se possa acessar a próxima. Existem dois tipos de seção: casos de es...

Princípio de substituição de Liskov

Imagem
Uma das regras que ajudam a nortear o design de objetos é o Princípio de Substituição de Liskov. Esse preceito foi definido inicialmente por Barbara Liskov em 1987 mas ganhou maior divulgação ao compor o grupo de regras chamado SOLID exposto por Robert C. Martin no livro  Agile Software Development: Principles, Patterns, and Practices . Este princípio diz que se q(x) é uma propriedade demonstrável dos objetos x de tipo T . Então q(y) deve ser verdadeiro para objetos y de tipo S onde S é um subtipo de T . Um pouco confuso na primeira vez que se lê, mas que na prática atesta que eu posso substituir uma instância de uma classe por outra instância que seja de uma subclasse da primeira, sem que isso altere o comportamento do sistema. Vamos usar um exemplo para poder explicar melhor. Veja a listagem de código abaixo. Ela simula um sistema de cálculo de imposto para venda de veículos. A classe Carro contém um método chamado CalcularValorImposto que recebe o valor do veícu...

Permissão para busca em listas do SharePoint com acesso anônimo

Um problema recente que tivemos com um portal baseado em SharePoint foi a falta de retorno de registros do mecanismo de busca nativo para usuários anônimos. Haviam listas personalizadas que continham informações e que quando um usuário autenticado fazia a busca, esses dados eram trazidos como resultado. Já quando a busca era feita por um usuário anônimo (no caso, na parte do portal exposta na Internet), esses dados não vinham. Após uma análise do log, descobriu-se que esses resultados eram removidos na hora de validar a segurança, ou seja, o SharePoint via que o usuário anônimo não tinha permissão para visualizar os dados dessas listas. Para resolver este problema, foi necessário quebrar a herança de permissão das listas e dar o acesso faltante para o usuário anônimo poder visualizar os dados na busca. Para isto, foi utilizado o script PowerShell abaixo. $web = Get-SPWeb "http://urldosite" $list = $web.TryGetList("nome da lista") $list.BreakRoleInheritanc...

Impressões e dicas do PSM I

Recentemente, como meta de trabalho, eu tirei a certificação Professional Scrum Master I (PSM I). Hoje eu gostaria de passar algumas impressões e dicas que eu tive em relação à esse exame, bem como o material de estudo que eu usei, para as pessoas que estejam interessadas em estudar e encarar esta prova de certificação. A certificação PSM I é a primeira no plano de carreira de um Scrum Master, dentro das disponíveis no Scrum.org. O Scrum.org é uma empresa de treinamento de Scrum fundada por Ken Schwaber, um dos dois criadores do Scrum. Não é a toa que esta é uma certificação bem reconhecida e aceita dentro do mercado e da comunidade, junto da CSM da Scrum Alliance. Existem algumas diferenças entre estas duas certificações: Para a CSM, é necessário fazer um curso com um instrutor associado e depois fazer uma prova. Na PSM, basta fazer uma prova online. Não fiz a CSM, mas pelo que li na Internet o nível de dificuldade dela é menor que o da PSM. Enquanto a prova da PSM cust...

.NET Core versus Chrome 54 - Invalid request line

Imagem
Com o recente lançamento de uma nova versão do .NET Core, a 1.1 ( https://blogs.msdn.microsoft.com/dotnet/2016/11/16/announcing-net-core-1-1/ ), fui correndo atualizar um projeto que estou trabalhando para poder experimentar as novas funcionalidades. Este é um projeto que expõe várias API (WebAPI), e por isso eu uso a ferramenta Postman ( https://www.getpostman.com/ ), dentro do Chrome, para simular as requisições. Entretanto, ao atualizar o projeto e suas respectivas bibliotecas e colocá-lo para rodar, ao acessá-lo tanto pelo Chrome (ele tem uma página inicial, não é só API) quanto pelo Postman, o erro abaixo começou a aparecer. info: Microsoft.AspNetCore.Server.Kestrel[17] Connection id "0HL0J500CHGCA" bad request data: "Invalid request line: <0x16><0x03><0x01><0x00><0xB9><0x01><0x00><0x00><0xB5><0x03><0x03><0xD0><0x95>yq6<0x92><0xCA>6v<0xA9><0x0A>" Mic...

Publicando WebJobs no .NET Core no Azure com VSTS

Imagem
Dentro de uma Web App do Azure, WebJobs permitem que códigos sejam executados em segundo plano. Por exemplo, se a aplicação web tem um processo pesado, ao invés de rodá-lo no contexto da Web App, podemos incluir um pedido de execução em uma fila do Azure Storage e o WebJob, rodando de tempos em tempos, executaria essa rotina. Isso diminui a carga de trabalho e aumenta o tempo de resposta das requisições web. Um WebJob pode rodar desde um script, como JavaScript ou Python, a uma aplicação do tipo console em .NET (um aplicativo do tipo linha de comando). Essa execução pode ser contínua, com este aplicativo rodando interruptamente; ou agendado, executando em um intervalo pré-configurado. Quando trabalhamos com nuvem, um aspecto importante é a agilidade em se implantar novas versões, e para conseguir isso a automação é um requisito essencial. Dentro da plataforma Microsoft, podemos utilizar as ferramentas de build e release do Visual Studio Team Services. Um WebJob criado com .NET...

Aplicação Android Xamarin compilada no VSTS não inicia no celular

Imagem
Estou estudando desenvolvimento mobile na plataforma Xamarin, e durante alguns testes meus, utilizando o Build do VSTS (Visual Studio Team Services), a minha aplicação Android compilada na nuvem simplesmente não funcionava quando instalada no celular. Para depurar a inicialização dela, resolvi utilizar a ferramenta Android Device Monitor, que pelo Visual Studio pode ser acessada no menu Tools > Android > Android Device Monitor. Com o celular conectado na USB do meu PC e com a depuração ativada (no Android, em Settings > Developer Options > USB debbuging), eu consegui identificar o problema através do log. A mensagem "You MUST run 'zipalign' on base.apk", logo depois de uma mensagem de erro do Mono, já disse tudo: faltou ativar o zipalign no momento em que o meu apk foi assinado. Depois de ativar essa opção no Build que estou utilizando e efetuar nova compilação, a aplicação passou a abrir sem erros.