.NET

Cloud Native e Cloud Agnostic

para rodar .NET em qualquer Cloud
ou sem Cloud sempre de forma profissional!

Últimas publicações

Aqui estão os últimos 12 posts de mais de 500…

DockerFile – Ubuntu + SSH + WebMin

DockerFile – Ubuntu + SSH + WebMin

[PT-BR]Não faça isso! Esse foi meu primeiro texto sobre docker, tem erros monumentais e essa não é uma boa prática. São muitas responsabilidades em um só container. Não há "depende", esse post é um ERRO CONCEITUAL, e só está presente aqui ainda para que eu lembre das besteiras que um dia escrevi!...

ler mais
MonolithFirst @ Fowler, artigo comentado

MonolithFirst @ Fowler, artigo comentado

Olá pessoal, hoje vou falar um pouco sobre um padrão detalhado pelo Fowler meses depois da minha saída do iMusica. Por sinal, há algo de interessante com esse padrão, pois era algo que alguns membros do meu time reclamavam e consideravam um anti-pattern. Vou aproveitar esse post vou tentar usar...

ler mais
TypeScript + Classic ASP … Why not?

TypeScript + Classic ASP … Why not?

As vezes algumas limitações impostas por clientes, times de arquitetura e empresas atrapalham nossas vidas. Não é fácil, nos dias de hoje, se sentir confortável em desenvolver algo com ASP Clássico. ASP pode ser facilmente considerado o cobol da Web. Com TypeScript você pode usar os recursos de...

ler mais
Por onde andei, andei frustrado

Por onde andei, andei frustrado

O mundo está cheio de pessoas felizes, sorridentes, as redes sociais estão abarrotadas por todos os lados de adoradores de potássio(1). Acho que é hora de falar do mundo real, e de algumas frustrações. A minha ausência se dá a um caso bem complexo na carreira, quando após entregar uma plataforma...

ler mais
Tutorial – Windows Nano Server para o VirtualBox

Tutorial – Windows Nano Server para o VirtualBox

16/11/2015 Atenção, este post foi feito no momento do lançamento do Technical Preview 2. Estou trabalhando no Technical Preview 3 para poder gerar conteúdo e apresentar alguns detalhes de como configurar e usar o Nano Server no dia-a-dia. Olá pessoal, saem aos poucos alguns artigos a respeito do...

ler mais
Windows Nano Server

Windows Nano Server

Olá galera, tudo bom? Dessa vez vou falar um pouco do Windows Nano Server. A nova Microsoft Nos últimos anos vemos a Microsoft repensando sua estratégia de mercado e repensando seus produtos. É incrível ver como esse gigante está conseguindo se reposicionar de forma assertiva junto ao mercado e...

ler mais
WebAPI não é bala de prata

WebAPI não é bala de prata

O tema Pessoal, faz alguns dias que assisti um debate interessante e muito produtivo com o tema "Serviços na plataforma .NET: WCF ou WebAPI?". Quem conduziu o debate foi a galera do AspNetCast‬, com a presença do Evilásaro Alves. Bom, não vou debater a respeito do cast que está aqui, minha...

ler mais
[deprecated]AssemblyInfoVersionManager

[deprecated]AssemblyInfoVersionManager

[deprecated] Muitas vezes usando Jenkins para CI/CD, você deseja alterar as informações do AssemblyInfo. Nos meus projetos, sempre tenho um AssemblyInfo Global, e durante o processo de build, é mesclado com o AssemblyInfo local. Dessa forma, informações comuns a todos os projetos são mantidas em...

ler mais
[deprecated]NugetTools

[deprecated]NugetTools

[deprecated] As demandas mais comuns na hora de publicar NuGet packages Você já tentou publicar algum projeto no NuGet? Se não foi uma tentativa isolada, só para testar você deve passar pelo seguinte problema: Novas referências são lançadas Você realiza o update das referências, atualizando seu...

ler mais
Logs Estruturados

Logs Estruturados

Então, meses sem escrever nada mas hoje estou aproveitando o domingo para escrever algumas coisas sobre o que tenho vivido no último ano. Olhando projeções para o próximo ano, vejo alguns pontos relevantes relacionados ao que posso contribuir com o dia-a-dia de vocês. Você sabe o que são logs...

ler mais

Fique por dentro e não perca nada

Menos de 10% da audiência recebe o conteúdo publicado

A newsletter é o meio mais eficiente de furar o bloqueio dos algoritmos das redes sociais e fazer o conteúdo chegar até você.

Assim evitamos poluir as comunidades com chamadas para eventos e lives.

Essa é forma mais eficiente de receber meu conteúdo.

Somos mais de 6k inscritos

Projetos Open Source

projetos ativos e projetos antigos disponíveis para estudo

Nenhum resultado encontrado

A página que você solicitou não foi encontrada. Tente refinar sua pesquisa, ou use a navegação acima para localizar a postagem.

Entender | Analisar | Projetar | Desenvolver | Implantar | Manter

A segurança que você busca não está em um tutorial

Para entender uma tecnologia é importante entender o que influenciou sua criação, o que ela faz de fato, como ela faz. Para que então se sinta seguro e confiante a respeito das decisões que está prestes a tomar.

De um lado precisamos compreender o que está sendo feito por baixo dos panos para descobrir como extrair o máximo de uma tecnologia ou, ao menos, não atrapalhar o bom funcionamento dela.

O Cloud Native .NET é uma jornada de descoberta sobre tecnologias e patterns que fazem parte da maioria dos softwares que usamos, que somos usuários e que suportam e toleram altas cargas de trabalho, de forma eficaz, eficiente e sustentável.

 

É primeiro entendendo o que eles fazem, que podemos descobrir oportunidades e evoluir no que fazemos…

Conteúdo

Tutorial – Windows Nano Server para o VirtualBox

Tutorial – Windows Nano Server para o VirtualBox

16/11/2015 Atenção, este post foi feito no momento do lançamento do Technical Preview 2. Estou trabalhando no Technical Preview 3 para poder gerar conteúdo e apresentar alguns detalhes de como configurar e usar o Nano Server no dia-a-dia. Olá pessoal, saem aos poucos alguns artigos a respeito do...

ler mais
Windows Nano Server

Windows Nano Server

Olá galera, tudo bom? Dessa vez vou falar um pouco do Windows Nano Server. A nova Microsoft Nos últimos anos vemos a Microsoft repensando sua estratégia de mercado e repensando seus produtos. É incrível ver como esse gigante está conseguindo se reposicionar de forma assertiva junto ao mercado e...

ler mais
WebAPI não é bala de prata

WebAPI não é bala de prata

O tema Pessoal, faz alguns dias que assisti um debate interessante e muito produtivo com o tema "Serviços na plataforma .NET: WCF ou WebAPI?". Quem conduziu o debate foi a galera do AspNetCast‬, com a presença do Evilásaro Alves. Bom, não vou debater a respeito do cast que está aqui, minha...

ler mais
[deprecated]AssemblyInfoVersionManager

[deprecated]AssemblyInfoVersionManager

[deprecated] Muitas vezes usando Jenkins para CI/CD, você deseja alterar as informações do AssemblyInfo. Nos meus projetos, sempre tenho um AssemblyInfo Global, e durante o processo de build, é mesclado com o AssemblyInfo local. Dessa forma, informações comuns a todos os projetos são mantidas em...

ler mais
[deprecated]NugetTools

[deprecated]NugetTools

[deprecated] As demandas mais comuns na hora de publicar NuGet packages Você já tentou publicar algum projeto no NuGet? Se não foi uma tentativa isolada, só para testar você deve passar pelo seguinte problema: Novas referências são lançadas Você realiza o update das referências, atualizando seu...

ler mais
Logs Estruturados

Logs Estruturados

Então, meses sem escrever nada mas hoje estou aproveitando o domingo para escrever algumas coisas sobre o que tenho vivido no último ano. Olhando projeções para o próximo ano, vejo alguns pontos relevantes relacionados ao que posso contribuir com o dia-a-dia de vocês. Você sabe o que são logs...

ler mais
Pragmatismo nunca é demais

Pragmatismo nunca é demais

As empresas cada vez mais tornam-se especialistas em suas áreas, demandando cada vez mais complexidade de seu parque tecnológico. Enquanto no início de suas atividades poucos sistemas davam conta de todo o negócio. Com o passar dos anos, áreas especializadas na criação de novos negócios encontram...

ler mais
#Fail – Sidnei Oliveira

#Fail – Sidnei Oliveira

Sidnei Oliveira se apresenta na FazINOVA, da Bel Pesce, falando no #Fail, histórias de insucesso que precederam o sucesso! Fique de olho nessa playlist é absolutamente sensacional! [youtube=https://www.youtube.com/watch?v=q-fGv-kAuUg&list=PLjIhqe5hH3aTD2oR7OCG6uWzk2jhTCb4h]  

ler mais
Alguns videos para animar essa segunda-feira!

Alguns videos para animar essa segunda-feira!

Bom, é segunda-feira, e você acordou desmotivado. Levante já da cama, a copa acabou e o ano começou. Mesmo que em pleno Julho de 2014, feliz ano novo! Se você é como eu, de alguma forma sempre se sentirá incomum. Assista esse vídeo, nós podemos não ser um deles, mas de qualquer forma há um...

ler mais
The Presentation Secrets of Steve Jobs

The Presentation Secrets of Steve Jobs

Bom, sem delongas, esse é mais um vídeo da Bel Pesce, nesse aqui ela fala de um livro bem legal. [youtube=http://www.youtube.com/watch?v=KRNnd1PRpHA] Os 3 atos! Criar uma História Entregar uma experiência Refinar e Praticar The Presentation Secrets of Steve Jobs: How to Be Insanely Great in Front...

ler mais

Conheça nosso Podcast

DevShow Podcast

Em 2019 resolvemos criar um podcast, o DevShow Podcast, desde lá são mais de 40 episódios com muito assunto legal, sempre com essa pegada pessoal, falando coisas sérias, mas sem o menor compromisso com a formalidade.

Saiba mais...

.NET

Nenhum resultado encontrado

A página que você solicitou não foi encontrada. Tente refinar sua pesquisa, ou use a navegação acima para localizar a postagem.

Arquitetura

Legado Versus Design – Database First e Code First

Legado Versus Design – Database First e Code First

Bom, quem acompanha o Oragon Architecture ao longo dos anos, mesmo que de forma despretensiosa, em algum momento me questiona sobre algumas decisões tomadas. Vou tentar ser breve para relatar alguns dos problemas e soluções que motivaram minhas decisões. Nesse tópico, vou falar de gestão de base de dados, Code First e Database First.

Esse assunto merecia um post inteiro, mas vou ser breve e tentar resumir em poucos parágrafos.

É comum ver nas empresas aplicações sendo construídas e desligadas, a cada ciclo de troca de diretores e gerentes. A máxima é que as aplicações vão, mas os dados ficam. Dificilmente temos ou o descarte ou a total remodelagem dos dados. Sob essa ótica, em algum momento você vai se deparar com algum cenário em que precisa construir uma nova solução em cima de um banco legado. Na minha carreira dificilmente encontrei cenários diferentes destes. Outra situação comum, é encontrar grandes empresas com regras para criação de aplicações isoladas das regras de criação e gestão de banco de dados. Geralmente empresas contam com alguns DBAs e possuem uma área de banco bem estruturada, no entanto, há muito pensamento arcaico por traz de DBAs e administradores de dados. Geralmente ou hora eu era responsável pela definição do padrão de arquitetura das aplicações ou fazia parte de um time que o fazia. Nos dois casos, o dilema de trabalhar com bases legadas ou de ter uma área que estruturava banco de dados trazia dificuldade para qualquer modelagem que não se baseasse e Database First.

As aplicações vão, mas os dados ficam!

Para suportar melhor esses ambientes, a geração de código, com base em banco, foi um aliado fenomenal. Ao longo dos anos a geração de código foi melhorando e chegamos ao ponto de não precisar de nenhuma intervenção humana no processo. Basta configurar regras e pronto, todo o código nasce a partir de um banco legado. Esse é o motivador para a ênfase em database first. Pode parecer retrógrado, mas se você não está em uma startup, com certeza fará todo o sentido pensar em algo assim.

Grande abraço!

 

 

Legado Versus Design – Database First e Code First

[deprecated] Oragon Architecture – A evolução e os novos desafios

[deprecated]

Para quem trabalhou comigo no BTG Pactual viu no Oragon Architecture o início do Oragon Architecture Services, que consistia em uma camada de abstração para a criação de serviços baseados em WCF, ainda configurado side-by-side com a configuração de WCF do .Net Framrwork.

Para atender às demandas da B2W Viagens, não tivemos muita evolução, mas para atender à BRQ, o host WCF do Spring foi estendido para no Oragon Architecture Services, e nesse ponto, não era mais necessário usar configurações padrão do .Net Framework para hospedar serviços WCF. Migrei a solução toda para do framework 3.5 para o framework 4.0 e criei uma infraestrutura de hospedagem dinâmica de processos, para que você não tenha de ficar criando diversos projetos, um para cada deploy. Agora você construía uma única biblioteca de serviços e um executável padrão, externo, era capaz de interagir com sua biblioteca, hospedando seus Service Facades em diversos protocolos. O deploy passava a ser apenas uma escolha entre configurações.

Sempre nessa linha de viabilizar a tomada de decisão mais tardia possível, seguimos com novas features. Cada empresa demandou algum esforço nesse projeto, visto que já faz algum tempo que aposto na visão de serviços como chave para o sucesso no quesito design.

No iMusica esse modelo atendeu muito bem, estamos usando muito toda essa infraestrutura, mas não foram só flores. Estamos hospedando aplicações gigantescas, com uma quantidade de processamento substancial. Muitas threads, muitos serviços, muitas operações simultâneas. Estamos consumindo muitos recursos de infraestrutura e aplicação, embora ainda não estejamos no máximo, vamos em alguns meses ou mesmo anos, chegar ao nível de processamento em que poucas máquinas não suportarão a necessidade de processamento demandada pelo parque.

Chegou o momento de pensar em escalar ainda mais, pensando em grid de máquinas, pensar em alocar máquinas dinamicamente, e escalar ao infinito! #SQN Claro que temos limitações, na prática se reduzirmos a quase Zero os recursos compartilhados, sim, seria possível sim.

Pensar em suprir essa demanda é algo extremamente excitante e divertido. A paixão pelo que se faz não vem por acaso, a conclusão de uma tarefa dessa magnitude é realmente um grande feito pessoal e profissional. Lado-a-lado com essa infraestrutura um marco importante para o meu trabalho no iMusica: Pensando exclusivamente em ingestão de conteúdo, estas features melhoram muito nossa perspectiva de futuro.

Fato é que estou muito excitado com o rumo do projeto e já estou desenhando um modelo de federação de processamento baseado em Worker Process distribuídos em máquinas. Não pensei com carinho suficiente, mas talvez possa até ser cross domain (para que possamos usar o melhor dos mundos, ambiente cloud local, side-by-side com cloud pública).

O modelo atual, embora tenha ajudado muito, é eficiente e eficaz quando pensamos em poucas instâncias, com gerenciamento manual. Quando pensamos em grid, e cross domain, pensamos em escalar inclusive o deploy. Por esse prisma, vejo hoje pontos de atenção quanto à utilização do modelo atual.

Hoje por exemplo precisamos nos preocupar com:

  • Cuidar de cada deploy, máquina-a-máquina
  • Gerenciar quantas instâncias do mesmo processos vamos rodar em cada uma dessas máquinas
  • Existem processos que não podem rodar em mais de uma instância, pois ou duplicam processamento ou agridem a performance do parque
  • Gerenciamento de dependência de serviços entre máquinas

Todas essas preocupações não existem quando pensamos em deploys em uma ou duas máquinas, mas quando pensamos em um parque com dez, ou vinte máquinas executando processamento pesado, esses cuidados de gestão passam a ser algo crítico. Levando em consideração que estamos consumindo muitos recursos para conseguir entregar uma solução robusta e escalável, gerenciamento não poderia em momento algum ser algo negligenciado. E admito, desde o JBoss 5, tenho o interesse em construir um servidor de aplicação, acredito que ao final desse projeto, tenha no Oragon Architecture, algo bem parecido com um Applciation Server.

Esse é um projeto que deve demandar alguns muitos meses, e muitas noites mal dormidas, e não poderia faltar, contratempos! Bom, terei muito esforço pela frente, mas é necessário, pois quero entregar com esse projeto:

  • Hospedagem e gerenciamento dinâmico de serviços, com aumento e redução de Workers dinamicamente (entre máquinas)
  • Hospedagem e gerenciamento dinâmico de escutas de filas (entre máquinas)
  • Hospedagem e gerenciamento dinâmico de agendamentos
  • Permitir deploy centralizado e distribuição automatizada entre os diversos servidores
  • Permitir fácil gerenciamento entre ambientes (Quais máquinas processam quais ambientes)
  • Gerenciamento facilitado de informações de log e debug.

A primeira tarefa a ser realizada é mapear os requisitos e analisar as possibilidades. Já esbocei um target, mas ainda não tracei um caminho. Ainda assim, algumas promessas já podem ser feitas:

  • Continuaremos usando Spring.Net
  • O código do Oragon Architecture continuirá no GitHub, open source.
  • Vai possuir uma bonita e funcional interface gráfica
  • Só será entregue quando estiver realmente funcional
  • Continuaremos usando muito AOP

Aos que tiverem a intenção de participar da concepção e/ou desenvolvimento, as portas estão abertas!

Grande abraço!

Legado Versus Design – Database First e Code First

[deprecated]Oragon Architecture disponível no NuGet

ReferenciasOragon

[deprecated]

Bom,

admito que já faz algum tempo que tenho pensado em migrar as referências do Oragon Architecture para o NuGet. A direita está a lista completa de referências, armazenadas na pasta [References], uma prática bem antiga, mas extremamente eficiente.

Por diversos motivos, incluindo retrocompatibilidade, venho sofrendo com a vontade e concomitantemente com a preguiça de realizar a migração. O problema é que tenho de manter a pasta [References] para projetos antigos, e coordenar as evoluções usando sempre 2 sets de configuração. Mas, já que estou tendo trabalho para migrar o projeto de framework (do 4.0 para o 4.5.1) então essa mudança se justificou. Resolvi arregaçar as mangas nesse carnaval e realizar as migrações necessárias para usar o NuGet como repositório de referências, e aproveitei que tive esse imenso trabalho, para publicar o projeto no NuGet também! E aqui estamos, temos uma RC2 publicada no endereço https://www.nuget.org/packages/Oragon.Architecture/.

Antes de mais nada vale lembrar, que agora temos:

  • Build para o framework 4.0 (usando referências em [References])
  • Build para o framework 4.5.1 (usando referências do NuGet)

Nuget

Espero que gostem!

 

 

Legado Versus Design – Database First e Code First

[deprecated] Oragon Architecture Now On GitHub

[deprecated]

Bom galera,

GitHub

movi meu projeto pessoal o Oragon Architecture para o GitHub ( https://github.com/luizcarlosfaria/Oragon.Architecture.git ). A intenção é estar mais próximo da comunidade, permitindo melhor integração com todo mundo que usa de alguma forma o projeto.

O Oragon Architecture me acompanha a muitos anos e pretendo fazer bastante material sobre ele.

Espero que gostem!

CheckOut It ( https://github.com/luizcarlosfaria/Oragon.Architecture.git )

Containers

Nenhum resultado encontrado

A página que você solicitou não foi encontrada. Tente refinar sua pesquisa, ou use a navegação acima para localizar a postagem.

Mensageria

Nenhum resultado encontrado

A página que você solicitou não foi encontrada. Tente refinar sua pesquisa, ou use a navegação acima para localizar a postagem.

Conteúdo e Posicionamento

.NET + Cloud Native + Cloud Agnostic

.NET | DevOps | Microservices | Containers | Continuous Delivery

.NET muito além do .NET

O mínimo de infra que todo dev e/ou arquiteto deveria saber

Aplicações distribuídas e comunicação entre serviços (RabbitMQ / gRPC)

Containers, Docker e Kubernetes

+

RabbitMQ e Mensageria e comunicação assíncrona entre aplicações e serviços

Arquitetura de Software e Arquitetura de Solução com foco no melhor aproveitamento em projetos .NET

Nossos números

Desde 2002 trabalhando com desenvolvimento de software

Desde 2002 ajudando outros devs

Desde 2010 trabalhando exclusivamente como arquiteto

Contas atingidas no telegram/facebook

Alunos

Microsoft MVP

2018-2020

2020-2021

2021-2022

2022-2023

2023-2024

2024-2025

Conteúdo Gratuito

Tudo que está aqui no gaGO.io é conteúdo gratuito, feito para ajudar desenvolvedores dos mais variados níveis.

Cursos

Tenho também alguns programas de acompanhamento. Esses programas tem a função de ajudar desenvolvedores em áreas específicas ou de forma mais abrangente na jornada do arquiteto.