Alternativa de estudos para o conteúdo do exame AZ-900 do Microsoft Azure

Este ano (2021) resolvi tirar junto a outros profissionais da empresa onde trabalho, a certificação básica do Microsoft Azure, o Microsoft Certified Azure Fundamentals. Embora seja um conteúdo de fácil compreensão para quem tem alguma vivência com assuntos referentes à nuvem de dados e a tecnologia como um todo. Há uma grande quantidade de conceitos, produtos e serviços que devem ser entendidos e assimilados, a fim de conseguir obter um resultado satisfatório no exame.

Como já disse, o conteúdo é relativamente simples, por isto considero que a grande dificuldade esteja na releitura do conteúdo da avaliação ao longo dos dias que antecedem a prova. Uma vez que com o passar dos dias, com a grande quantidade de informações acaba-se esquecendo sobre conceitos já estudados anteriormente. Sendo este o objetivo deste post, que busca prover em um único lugar, de forma resumida, todo o conteúdo em formato textual e gráfico de uma maneira didática, que funcionou pelo menos para mim, rs.

Trata-se de uma sequência de slides trazem referências às páginas do Microsoft Learn (https://docs.microsoft.com/pt-br/learn/certifications/exams/az-900) e do canal do Adam Marczak no Youtube (https://www.youtube.com/watch?v=NPEsD6n9A_I&list=PLGjZwEtPN7j-Q59JYso3L4_yoCjj2syrM), além de alguns complementos do Microsoft Docs. Os slides podem ser lidos em sequência, seguindo os seis módulos referentes ao conteúdo do exame conforme disponibilizado no Microsoft Learn. Como também para buscas no localizar do pdf, procurando fazer consultas rápidas por algum termo que se queira pesquisar.

É isto, bons estudos a todos e deixo este canal aberto para que os interessados possam fazer comentários à respeito e também adicionarem sugestões e críticas, para que possamos ir melhorando este material.

IMPLANTAÇÃO/DEPLOY DE UMA APLICAÇÃO EM ANGULAR 8 UTILIZANDO UM WEB API EM ASP.NET CORE 2.2

Contextualizando o cenário da implantação

Ao iniciar este processo de implantação/deploy de uma aplicação web ASP.NET Core, fui ao longo de alguns dias, pelo método de tentativa e erros, descobrindo várias necessidades para que o backend e o frontend de uma aplicação funcionassem em uma máquina virtual (VM) do Microsoft Azure. Há muitos detalhes que o ASP.NET Core juntamente ao Angular exigem para funcionar conjuntamente, resolvi criar alguns tópicos, para que pudesse relembrar e replicar nos próximos projetos. Estes tópicos foram aumentando, assim como minha frustração de colocar esta aplicação online com estas tecnologias funcionando. Foi então que surgiu a ideia de escrever um post, objetivando organizar todas as tarefas realizadas de forma acessível a todas as pessoas, com o maior número de informações possíveis a este respeito num único lugar. Um artigo contendo as atividades básicas para iniciantes implantarem aplicações similares a esta.

Há muita documentação à ser lida para um detalhamento conceitual à respeito das práticas aqui executadas, não sendo objetivo deste post explicá-las, mas sim a identificação do que foi usado na prática. Ao longo deste post alguns links serão apresentados, para prover um maior respaldo técnico à medida que os problemas foram surgindo.


Este post não tem nada de especial e inventivo, acredito que seu mérito esteja no agrupamento de várias informações e testes à respeito das tecnologias citadas num único lugar.

Continuar lendo

Você pode ser substituído por uma máquina?

Este foi um dos temas de redação propostos no processo seletivo da Universidade Federal de Uberlândia 2015-2. E com base neste tema, é proposto redigir uma CARTA ARGUMENTATIVA ao Ministro do Trabalho, sugerindo a criação de medidas que minimizem a situação dos trabalhadores que poderão ser substituídos por uma máquina.

Trata-se de um tema que menciona um problema atual, com uma referência enorme junto aos produtos e sub-produtos criados por programadores, tais como eu. E como nem só de linhas de código são escritos os posts deste blog, mas também de pensamentos e ideias que dizem e expressam nossa opinião sobre qualquer assunto envolvendo tecnologia. Eis aqui nossa humilde opinião sobre formas de amenizar este problema.

Frame1

Continuar lendo

Campos redundantes relacionados as entidades do EntityFramework 6.x

O erro descrito à seguir é obtido em tempo de runtime e não é identificado pela compilação da aplicação. Sendo assim, torna-se mais difícil a identificação da origem do problema, por não ficar evidenciado em nenhum momento em qual parte do código, dos dados, dos arquivos binários, há a ocorrência desta mensagem:

The item with identity ‘Id’ already exists in the metadata collection. Parameter name: item

Continuar lendo

Problema com testes unitários em controllers do ASP.NET MVC envolvendo AutoMapper.

Existe a possibilidade de ocorrer um problema na criação de testes unitários envolvendo chamadas de métodos de controllers do ASP.NET MVC que utilizam o AutoMapper para mapeamento das entidades de domínio e ViewModels. Na execução de um teste sobre o controller, foi lançado uma exceção do tipo FileLoadException, no momento da chamada que seu construtor era carregado com seus dois parâmetros, um serviço de CRUD e a interface IMappingEngine do AutoMapper. A opção por passar a interface IMappingEngine como parâmetro, injetando-a no construtor. Este procedimento tem o intuito de facilitar os testes, tornando possível a definição do objeto IMappingEngine, antes da instância do controller. No caso deste exemplo, o construtor do controller tem uma assinatura similar a esta:

Continuar lendo

O que, onde, quando e quem testar no seu código


“O que testar? Onde testar? Quem testar? Este é um post com alternativas práticas para se testar a camada de domínio, acesso a dados e interface de usuário em aplicações real. Sugerindo tipos de testes de acordo com a camada em que pertence, dentro de uma arquitetura baseada em DDD, numa típica aplicação ASP.NET MVC.“

Em teoria testes unitários são relativamente simples de serem construídos e compreendidos. Uma vez que assemelham-se a pequenos programas, com entradas, processamento e saídas bem definidos. Porém a implementação de testes em “aplicações reais” é bem mais complicada de ser colocada em prática do que em teoria. Seja usando testes unitários em toda a aplicação, ou apenas em algumas partes mais críticas para a escrita de testes específicos. O que pode ser constatado em geral é que após o entendimento da teoria referente à testes é difícil saber onde aplicar os testes unitários? E principalmente “o que” e “como” testar nosso código?

Este post objetiva mostrar alguns exemplos de testes para as camadas de uma aplicação MVC, com métodos que acessam um banco de dado, interações de usuários, de acordo com os conceitos do DDD. O padrão arquitetural DDD fornece uma estrutura de práticas e terminologia para a tomada de decisões de design que focam e aceleram projetos de software, lidando com domínios complicados (Wikipedia), possuindo camadas previamente definidas, Domain Layer, Application Layer, Data Acess Layer e Presentation Layer (Figura 1). Cada uma destas camadas possuem diferentes responsabilidades e características e consequentemente diferentes tipos de testes unitários.

Continuar lendo

What, where, when and who to test in your code

This article was also published in CodeProject.


“What to test? Where to test? Who to test? This is a post with practical alternatives to test the domain layer, data access and user interface in real-world applications. Suggesting types of testing according to layer on which it belongs, within a DDD-based architecture, in typical applications ASP.NET MVC.“

In theory a unit testing is straightforward to be built and comprehended. Since it seems small programs, with inputs/processing/outputs well-defined. But the implementation of testing in “real-world applications” is much more complicated in practice than in theory. Either using unit testing throughout the application or only the most critical parts for writing specific tests. In general, often after that is understood theoretical examples, it’s difficult to know where applying unit testing? What to test? And mainly, how to test our own source code?

This post aims to show some examples of tests to the layers of an MVC application with methods that access a database, user interactions, according to the DDD concepts. The DDD architectural pattern provides a framework of practices and terminology for making design decisions that focus and accelerate software projects, dealing with complicated domains (Wikipedia), with previously defined layers, Domain Layer, Application Layer, Data Access Layer and Presentation Layer (Figure 1). Each of these layers have different responsibilities and characteristics, therefore different types of unit testing.

Continuar lendo

Roteiro para Instalação do Team Foundation Server – TFS no Windows 2012 Server

orchard-tfs

A instalação do Team Foundation Server- TFS não é trivial, uma vez que envolve alguns pré-requisitos obrigatórios que permitem várias opções de cenários para prover os serviços. Inicialmente é necessário traçar e abstrair a forma de trabalho do time de desenvolvimento, de acordo com os recursos (software e hardware) disponíveis na organização à usá-lo, em sintonia com as funcionalidades da versão adquirida. Existem várias possibilidades de instalação que podem ou não ser vinculadas a outras aplicações e ferramentas de controle do sistema operacional. Porém, a intenção deste roteiro é resumir de forma bastante simplificada as informações contidas na documentação original. Guiando por um único caminho, seguindo regras pré-determinadas para o seu bom funcionamento após a instalação. Este artigo é indicado não só pelas informações de documentação contidas nele, mas também pelas experiências verificadas ao longo do processo de instalação do TFS. Ilustrando algumas boas práticas para o seu funcionamento futuro, sequências de instalação junto ao ambiente do sistema e configuração de pré-requisitos.  Exibindo uma série de erros que podem ocorrer ao longo do processo, a fim de evitá-los.

O assistente/wizard de instalação possibilita um número variado de possibilidades para a instalação do TFS. Podendo ter por exemplo, uma instalação vinculada a um único servidor ou com mais servidores, com o objetivo de separação das responsabilidades e escalonamento de cargas. Ou pode-se ter uma instalação vinculada ao Reporting Services do SQL Server, para o uso de seus poderosos recursos de criação de relatórios. Ou ainda uma instalação com vínculo as features do Sharepoint. Além de questões como segurança e a forma de permissões de acesso aos projetos, podendo ser implementada de várias formas. São várias as possibilidades, que são suceptíveis a vários tipos de erros que serão listados neste roteiro! Embora não seja possível a demonstração de todas as possibilidades de instalação, este roteiro experimentou inúmeros cenários e configurações utilizando o SQL Server 2008 R2, o SQL Server 2012, suas versões Express, o Team Foundation Server 2012, junto ao Windows Server 2012 R2 Datacenter.

Continuar lendo

Roteiro para criação de uma Máquina Virtual no Windows Azure e implantação de aplicações ASP.NET MVC

Este post tem como objetivo fornecer uma sequência de passos a fim de guiar na criação, manipulação de recursos e no uso de uma máquina virtual do Windows Azure (VM). Seguindo desde a criação de uma VM, seus recursos e pré-requisitos até a implantação de uma aplicação web dentro do sistema. Descrevendo alguns erros e acertos cometidos nesta experiência ao longo do processo. Exibindo ao final do processo, um cloud-server funcional, do ponto de vista das necessidades de desenvolvimento e deploy de aplicações. Neste post não há nenhum enfoque em segurança, performance de hardware, escalabilidade e acessibilidade. Como já afirmado anteriormente, o único objetivo é a disponibilidade de uma máquina virtual em rede e pronta para hospedagem de aplicações ASP.NET.

A opção por uma VM vem da necessidade de haver uma máquina com toda a sua infraestrutura alocada na rede, com permissão e controle total de seu sistema operacional. Para o caso da instalação de apenas uma aplicação web, o mais recomendado seria o item ‘Site’, dentre as opções de produtos do Windows Azure. Neste caso, a escolha da plataforma IaaS, surgiu da previsão de que futuramente não somente esta aplicação, mas outras também possam estar presentes no cloud-server. Havendo a possibilidade de termos bancos de dados diversos, gerenciamento de arquivos para download/upload, serviços para entrega e recepção de mensagens entre aplicações, Windows services criados para suporte aos processamentos mais pesados, e outras demandas possíveis que tornam-se facilitadas com o uso de uma mesma infra-estrutura. É interessante que a contratação dos produtos esteja bem embasada nos conceitos de IaaS, PaaS e SaaS. Para isto recomendo a leitura de http://msdn.microsoft.com/pt-br/magazine/ee309870.aspx, no intuito do melhor uso dos recursos, objetivando um melhor custo/benefício.

Continuar lendo

Migrando uma aplicação ASP.NET MVC 2 para o MVC3

Este post não é um roteiro contendo as melhores ferramentas e técnicas para a migração do framework ASP.NET MVC 2 para o ASP.NET MVC 3. Trata-se de uma sequência de erros e acertos cometidos ao migrar uma aplicação do MVC 2 para MVC 3, disponibilizada de forma documental, conforme a execução cronológica das tarefas realizadas num projeto específico. Existe a possibilidade de ter sido tomada algumas decisões erradas e ter sido utilizado ferramentas menos eficientes que outras existentes. Foi priorizada a escolha de ferramentas que a primeira vista parecessem mais confiáveis e que fossem mais eficientes, tomando o menor tempo possível em adaptações manuais. O mais importante é que ao final deste processo foi obtido sucesso, iniciando com uma aplicação contendo mais de 250 Views, Partial Views e Masterpages, transformando-a numa aplicação totalmente funcional.

Continuar lendo