- Microsoft Virtual Academy - Introduction to ASP.NET Core 1.0
- Codeschool - Try ASP.NET Core
Breve introdução ao ASP.NET Core e ao MVC (Sem acesso a dados) - Codeschool - Forging ahead with asp net core
Continuação do curso anterior, com o primeiro modulo gratuito (CRUD com Entity Framework)
domingo, 30 de outubro de 2016
Cursos de Asp.Net Core
Cursos gratuitos sobre o Asp.net Core:
sábado, 29 de outubro de 2016
Configurando um servidor Linux
Se você ficou empolgado com a possibilidade de executar o .net core no Linux para ver como estão as coisas, há dois cursos bem interessantes na Udacity para ajudar com a sua familiarização do ambiente.
O primeiro curso, é o Linha de Comando Linux Básico que cheguei a fazer o post Executando o Bash no Windows para servir de consulta rápida.
Outro curso muito bem feito pela Udacity é o Configuring Linux Web Servers (Your First Ubuntu Server) que foi fonte para as anotações abaixo:
sudo apt-get update
Mais info no em "What does “sudo apt-get update” do?"
Para atualizar os pacotes no sistema (Ou seja, atualizar os pacotes instalados)
apt-get upgrade
Para remover pacotes não mais utilizados
apt-get autoremove
Para instalar novos pacotes
apt-get install [pacote]
Para descobrir pacotes disponíveis cada fornecedor linux normalmente mantém uma página para consulta. Você pode consultar os pacotes disponíveis para o Ubuntu neste link.
sudo adduser [usuário]
O pacote finger permite administrar os usuários.Para confirmar que o usuário foi criado:
finger [usuário]
Para logar com o usuário:
ssh [usuário]@[ip] -p [porta]
Exemplo:
ssh student@127.0.0.1 -p 2222
Para forçar a expiração da senha do usuário, basta executar este comando:
sudo passwd -e [usuário]
Para listar usuários que podem acessar como super usuários (sudo):
sudo cat /etc/sudoers
No Ubuntu, os arquivos do diretório /etc/sudoers.d também são incluídos como usuários root, então para saber super usuários também devemos consulta-lo:
sudo ls /etc/sudoers.d
Para mais informações do sudoers:
https://help.ubuntu.com/community/Sudoers
Para gerar uma chave pública privada deve-se utilizar o comando:
ssh-keygen
Passo a passo de como definir o SSH key:How To Set Up SSH Keys
owner (dono), group (grupo), all users (todos usuário).
Há três tipos de permissões para cada grupo:
r = Read(leitura) = 4
w = Write(escrita) = 2
x = eXecute(executar) = 1
Para ver as permissões dos arquivos do diretório basta executar o comando ls -l

Para alterar as permissões em um arquivo basta executar o comando chmod [octal file permission] (que é composto por 3 números, 1 para cada grupo de permissão. Para dar a permissão - r-- -w- --x deve-se digitar chmod 421)
Para alterar grupo deve-se usar o comando chgrp. Para alterar o dono do arquivo deve-se utilizar o comando chown.
Mais informações em Understanding Linux File Permissions
Para ver o status deste firewall, basta executar o comando abaixo:
sudo ufw status
Para negar todo recebimento no servidor:
sudo ufw default deny incoming
Para habilitar todo envio:
sudo ufw default allow outgoing
Para habilitar a porta do ssh:
sudo ufw allow ssh
Para habilitar a porta do ssh no vagrant:
sudo ufw allow 2222/tcp
Para habilitar a porta de http básico:
sudo ufw allow www
Para habilitar o firewall
sudo ufw enable
As configurações básicas se encerram aqui, os próximos passos é escolher quais as configurações dos aplicativos que você irá rodar no servidor Linux.
Exemplos de configurações de alguns servidores (em breve quero fazer para o .net core):
O primeiro curso, é o Linha de Comando Linux Básico que cheguei a fazer o post Executando o Bash no Windows para servir de consulta rápida.
Outro curso muito bem feito pela Udacity é o Configuring Linux Web Servers (Your First Ubuntu Server) que foi fonte para as anotações abaixo:
Alguns comandos ensinados nas aulas
Para atualizar a lista de últimos pacotes disponíveis, que ficam no arquivo /etc/apt/sources.listsudo apt-get update
Mais info no em "What does “sudo apt-get update” do?"
Para atualizar os pacotes no sistema (Ou seja, atualizar os pacotes instalados)
apt-get upgrade
Para remover pacotes não mais utilizados
apt-get autoremove
Para instalar novos pacotes
apt-get install [pacote]
Para descobrir pacotes disponíveis cada fornecedor linux normalmente mantém uma página para consulta. Você pode consultar os pacotes disponíveis para o Ubuntu neste link.
Administrando super usuários
É uma boa prática de segurança no linux desabilitar o usuário root para acesso remoto. Para fazer isso, primeiro deve-se criar um usuário que poderá acessar como root:sudo adduser [usuário]
O pacote finger permite administrar os usuários.Para confirmar que o usuário foi criado:
finger [usuário]
Para logar com o usuário:
ssh [usuário]@[ip] -p [porta]
Exemplo:
ssh student@127.0.0.1 -p 2222
Para forçar a expiração da senha do usuário, basta executar este comando:
sudo passwd -e [usuário]
Para listar usuários que podem acessar como super usuários (sudo):
sudo cat /etc/sudoers
No Ubuntu, os arquivos do diretório /etc/sudoers.d também são incluídos como usuários root, então para saber super usuários também devemos consulta-lo:
sudo ls /etc/sudoers.d
Para mais informações do sudoers:
https://help.ubuntu.com/community/Sudoers
Logando por chave de segurança
Para gerar uma chave pública privada deve-se utilizar o comando:
ssh-keygen
Passo a passo de como definir o SSH key:How To Set Up SSH Keys
Entendendo as permissões no Linux
Todo arquivo ou diretório no linux tem permissão baseado em três grupos:owner (dono), group (grupo), all users (todos usuário).
Há três tipos de permissões para cada grupo:
r = Read(leitura) = 4
w = Write(escrita) = 2
x = eXecute(executar) = 1
Para ver as permissões dos arquivos do diretório basta executar o comando ls -l
Para alterar as permissões em um arquivo basta executar o comando chmod [octal file permission] (que é composto por 3 números, 1 para cada grupo de permissão. Para dar a permissão - r-- -w- --x deve-se digitar chmod 421)
Para alterar grupo deve-se usar o comando chgrp. Para alterar o dono do arquivo deve-se utilizar o comando chown.
Mais informações em Understanding Linux File Permissions
Portas
A forma de acessar um servidor externamente é sempre por portas. As portas direcionam comandos para aplicativos, e estes podem responder por elas. Há padrões de porta e tipo de aplicativo associado como http é a porta 80. Mais informações "List of TCP and UDP port numbers"Firewall
Ubuntu vem instalado com o firewall ufw.Para ver o status deste firewall, basta executar o comando abaixo:
sudo ufw status
Para negar todo recebimento no servidor:
sudo ufw default deny incoming
Para habilitar todo envio:
sudo ufw default allow outgoing
Para habilitar a porta do ssh:
sudo ufw allow ssh
Para habilitar a porta do ssh no vagrant:
sudo ufw allow 2222/tcp
Para habilitar a porta de http básico:
sudo ufw allow www
Para habilitar o firewall
sudo ufw enable
As configurações básicas se encerram aqui, os próximos passos é escolher quais as configurações dos aplicativos que você irá rodar no servidor Linux.
Exemplos de configurações de alguns servidores (em breve quero fazer para o .net core):
domingo, 16 de outubro de 2016
Acesso a Dados e Desempenho
A Microsoft continua investindo no desempenho do asp.net core e fazendo várias modificações nos fontes para garantir bons número na rodada 13 do techempower. O primeiro post que escrevi sobre isto foi o "Como está a preocupação do ASPNET 5(Core) em relação a desempenho?"
Em busca de comparar desempenhos, no acesso a dados, eles fizeram diferentes cenários tanto para consultas simples como consultas múltiplas:
DbConnection/DbCommand
EntityFramework
Dapper
Para fazer comparações dos números alcançados é possível baixar os fontes, executar e avaliar você mesmo, de toda forma vou esperar eles atualizarem os resultados e quando isso acontecer, atualizo o post.
O interessante de avaliar estes fontes é conhecer práticas que podem melhorar o desempenho de aplicações.
Nos fontes do benchmark do asp.net core é possível ver o uso do NoTraking para os cenários de somente leitura de registros.
Nesta frame a query que vai ao banco é escrita numa string com o SQL, o que otimiza a execução o da query pelo Entity Framework, mas perde facilidades como a simples renomeações de colunas que o Linq e Entity Framework auxilia com um simples Refactor.
O post "Dapper vs Entity Framework vs ADO.NET Performance Benchmarking" fez um comparativo do Entity Framework, Dapper e ADO.net e, para o projeto e contexto específico da necessidade avaliada, a conclusão foi utilizar as duas frameworks:
Em busca de comparar desempenhos, no acesso a dados, eles fizeram diferentes cenários tanto para consultas simples como consultas múltiplas:
DbConnection/DbCommand
EntityFramework
Dapper
Para fazer comparações dos números alcançados é possível baixar os fontes, executar e avaliar você mesmo, de toda forma vou esperar eles atualizarem os resultados e quando isso acontecer, atualizo o post.
O interessante de avaliar estes fontes é conhecer práticas que podem melhorar o desempenho de aplicações.
Entity Framework
Esta framework de ORM mantida pela Microsoft cria uma abstração que facilita muito o acesso a dados, mas como qualquer tipo de abstração pode gerar problema de desempenho. Nos link Performance Considerations for Entity Framework 4, 5, and 6 e Entity Framework Performance and What You Can Do About It estão listadas boas práticas que podem melhorar o desempenho de acesso a dados.Nos fontes do benchmark do asp.net core é possível ver o uso do NoTraking para os cenários de somente leitura de registros.
Dapper.Net
Este pacote, mantido pelo Stackoverflow, é um mapeamento de objeto simples para .net, com foco em desempenho. A ideia é escrever a query e chamar um dos 3 métodos estendidos do IDbConnection. Mais informações veja o Dapper no Github.Nesta frame a query que vai ao banco é escrita numa string com o SQL, o que otimiza a execução o da query pelo Entity Framework, mas perde facilidades como a simples renomeações de colunas que o Linq e Entity Framework auxilia com um simples Refactor.
O post "Dapper vs Entity Framework vs ADO.NET Performance Benchmarking" fez um comparativo do Entity Framework, Dapper e ADO.net e, para o projeto e contexto específico da necessidade avaliada, a conclusão foi utilizar as duas frameworks:
The plan is to develop this project using Entity Framework, and later optimize to use Dapper.NET in certain scenarios where the system needs a performance boost. Yes, we are going with the slowest option to start.
"O plano é desenvolver este projeto usando Entity Framework, e depois otimizar para usar Dapper.NET em certos cenários onde o sistema precisa uma melhora de desempenho. Sim, nós vamos com a solução mais lenta para iniciar" (Tradução Livre)
quarta-feira, 12 de outubro de 2016
Monitoramento de Aplicações e Serviços Web
O podcast do Hipsters ponto tech - Monitoramento: não receba mais telefonemas de madrugada! – Hipsters #12 convidou dois profissionais de experiência cloud para falar sobre monitoramento da saúde de aplicações Web.
O programa teve discussão muito rica e merece ser ouvido na íntegra. No fim do podcast eles elencaram três principais ferramentas, para quem não faz não faz nenhum monitoramento, que deveriam ser utilizadas e compartilho abaixo junto com outras alternativas:
O programa teve discussão muito rica e merece ser ouvido na íntegra. No fim do podcast eles elencaram três principais ferramentas, para quem não faz não faz nenhum monitoramento, que deveriam ser utilizadas e compartilho abaixo junto com outras alternativas:
- Monitoramento se o site está no ar
- Monitoramento de disponibilidade e desempenho:
- Monitoramento interno da aplicação e insights
- Coleta e análise de Logs
sábado, 1 de outubro de 2016
Executando o bash no Windows
A atualização de aniversário do Windows 10 oferece uma nova funcionalidade para desenvolvedores: o Bash shell baseado no Ubuntu, que permite executar programas linux direto no Windows.
Para instalar o Bash no Windows, além de atualizar o Windows 10, é necessário seguir este passo a passo.
Alguns comandos para ambientar no Bash se você é está acostumado a utilizar o prompt de comando DOS do windows :
Para instalar o Bash no Windows, além de atualizar o Windows 10, é necessário seguir este passo a passo.
Alguns comandos para ambientar no Bash se você é está acostumado a utilizar o prompt de comando DOS do windows :
- Alterar diretório: cd no Bash e no DOS
- Listar conteúdo de diretório:: ls no Bash, dir no DOS
- Mover ou renomear arquivos: mv no Bash, move e rename no DOS
- Copiar um arquivo: cp no Bash, copy no DOS
- Excluir um arquivo: rm no Bash, del ou erase no DOS
- Criar um diretório: mkdir no Bash, mkdir no DOS
- Usar um editor de texto: vi ou nano no Bash, edit no DOS
- Comandos básicos do vi
- dd para excluir uma linha
- ESC e depois ZZ para salvar e sair
- host [url] (Exemplo host google.com.br): Informações do DNS para a Url passada
- atalho ctrl + r: permite buscar no historico de comando algum utilizado e o utilizar
- diff [file1] [file2]: mostra a diferença de conteúdo entre dois arquivos
- man comando (exemplo man diff): mostra o manual do comando solicitado, que ajuda a entender como funciona, os argumentos.
- less [file] : visualizar um arquivo, com opção de navegação, pesquisa (incluindo regex)
- Há várias opções de edição de texto como o nano [file] ou vim [file]
- pwd : imprime o diretório corrente (print working directory)
Assinar:
Postagens (Atom)