Arquitetar Aplicativos Web Modernos com o ASP.NET Core e o AzureArchitect Modern Web Applications with ASP.NET Core and Azure

Imagem da capa do guia Arquitetar Aplicativos Web Modernos.

PUBLICADO PORPUBLISHED BY

Divisão de Desenvolvedores Microsoft, equipes dos produtos .NET e Visual StudioMicrosoft Developer Division, .NET, and Visual Studio product teams

Uma divisão da Microsoft CorporationA division of Microsoft Corporation

One Microsoft WayOne Microsoft Way

Redmond, Washington 98052-6399Redmond, Washington 98052-6399

Copyright © 2019, Microsoft CorporationCopyright © 2019 by Microsoft Corporation

Todos os direitos reservados.All rights reserved. Nenhuma parte do conteúdo deste guia pode ser reproduzida ou transmitida de nenhuma forma nem por nenhum meio sem a permissão por escrito do publicador.No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written permission of the publisher.

Este manual é fornecido "no estado em que se encontra" e expressa os pontos de vista e as opiniões do autor.This book is provided “as-is” and expresses the author’s views and opinions. Os pontos de vista, as opiniões e as informações expressos neste guia, incluindo URLs e outras referências a sites da Internet, podem ser alteradas sem aviso prévio.The views, opinions and information expressed in this book, including URL and other Internet website references, may change without notice.

Alguns exemplos aqui representados são fornecidos apenas para ilustração e são fictícios.Some examples depicted herein are provided for illustration only and are fictitious. Nenhuma associação ou conexão real é intencional ou deve ser deduzida.No real association or connection is intended or should be inferred.

A Microsoft e as marcas comerciais listadas em https://www.microsoft.com na página da Web “Marcas comerciais” são marcas comerciais do grupo de empresas da Microsoft.Microsoft and the trademarks listed at https://www.microsoft.com on the “Trademarks” webpage are trademarks of the Microsoft group of companies.

Mac e macOS são marcas comerciais da Apple Inc.Mac and macOS are trademarks of Apple Inc.

O logotipo de baleia do Docker é uma marca registrada da Docker, Inc. usado mediante permissão.The Docker whale logo is a registered trademark of Docker, Inc. Used by permission.

Todas as outras marcas e logotipos são propriedade de seus respectivos proprietários.All other marks and logos are property of their respective owners.

Autor:Author:

Steve "ardalis" Smith – Arquiteto de software e instrutor – Ardalis.comSteve "ardalis" Smith - Software Architect and Trainer - Ardalis.com

Editores:Editors:

Maira WenzelMaira Wenzel

IntroduçãoIntroduction

O .NET Core e o ASP.NET Core oferecem várias vantagens sobre o desenvolvimento tradicional no .NET..NET Core and ASP.NET Core offer several advantages over traditional .NET development. Você deve usar o .NET Core para seus aplicativos de servidor se alguns ou todos os itens a seguir forem importantes para o sucesso do aplicativo:You should use .NET Core for your server applications if some or all of the following are important to your application's success:

  • Suporte para plataforma cruzada.Cross-platform support.

  • Uso de microsserviços.Use of microservices.

  • Uso de contêineres do Docker.Use of Docker containers.

  • Requisitos de alto desempenho e escalabilidade.High performance and scalability requirements.

  • Controle de versão lado a lado para versões do .NET por aplicativo no mesmo servidor.Side-by-side versioning of .NET versions by application on the same server.

Aplicativos .NET tradicionais poderão dar suporte a vários desses requisitos, porém o ASP.NET Core e .NET Core foram otimizados para proporcionar suporte aprimorado para os cenários acima.Traditional .NET applications can and do support many of these requirements, but ASP.NET Core and .NET Core have been optimized to offer improved support for the above scenarios.

Cada vez mais empresas estão optando por hospedar seus aplicativos Web na nuvem usando serviços como o Microsoft Azure.More and more organizations are choosing to host their web applications in the cloud using services like Microsoft Azure. Considere hospedar seu aplicativo na nuvem se os seguintes itens forem importantes para seu aplicativo ou organização:You should consider hosting your application in the cloud if the following are important to your application or organization:

  • Investimento reduzido nos custos de data center (hardware, software, espaço, utilitários, gerenciamento de servidor, etc.)Reduced investment in data center costs (hardware, software, space, utilities, server management, etc.)

  • Preços flexíveis (pague com base no uso, não pela capacidade ociosa).Flexible pricing (pay based on usage, not for idle capacity).

  • Confiabilidade extrema.Extreme reliability.

  • Melhoria na mobilidade de aplicativo: altere facilmente onde e como seu aplicativo é implantado.Improved app mobility; easily change where and how your app is deployed.

  • Capacidade flexível: aumente ou reduza com base em necessidades reais.Flexible capacity; scale up or down based on actual needs.

A criação de aplicativos Web com o ASP.NET Core, hospedados no Azure, oferece várias vantagens competitivas em relação às alternativas tradicionais.Building web applications with ASP.NET Core, hosted in Azure, offers many competitive advantages over traditional alternatives. O ASP.NET Core é otimizado para práticas de desenvolvimento de aplicativos Web e cenários de hospedagem em nuvem modernos.ASP.NET Core is optimized for modern web application development practices and cloud hosting scenarios. Neste guia, você aprenderá como arquitetar seus aplicativos ASP.NET Core para aproveitar melhor essas funcionalidades.In this guide, you'll learn how to architect your ASP.NET Core applications to best take advantage of these capabilities.

FinalidadePurpose

Este guia fornece diretrizes ponta a ponta para a compilação de aplicativos Web monolíticos usando o ASP.NET Core e o Azure.This guide provides end-to-end guidance on building monolithic web applications using ASP.NET Core and Azure. Nesse contexto, "monolítico" refere-se ao fato de que esses aplicativos são implantados como uma única unidade, não como uma coleção de serviços e aplicativos em interação.In this context, "monolithic" refers to the fact that these applications are deployed as a single unit, not as a collection of interacting services and applications.

Este guia é um complemento do "Microsserviços do .NET. Arquitetura de aplicativos .NET em contêineres" que se concentra mais no Docker, em microsserviços e na implantação de contêineres para hospedar aplicativos empresariais.This guide is complementary to the ".NET Microservices. Architecture for Containerized .NET Applications" which focuses more on Docker, Microservices, and Deployment of Containers to host enterprise applications.

Microsserviços do .NET..NET Microservices. Arquitetura de aplicativos .NET em contêineresArchitecture for Containerized .NET Applications

Quem deve usar este guiaWho should use this guide

O público-alvo principal deste guia são desenvolvedores, líderes de desenvolvimento e arquitetos interessados em compilar aplicativos Web modernos usando tecnologias e serviços da Microsoft na nuvem.The audience for this guide is mainly developers, development leads, and architects who are interested in building modern web applications using Microsoft technologies and services in the cloud.

Um público-alvo secundário são os tomadores de decisões técnicas que já estão familiarizados com o ASP.NET ou com o Azure e estão buscando informações para saber se é interessante atualizar seus projetos novos ou existentes para o ASP.NET Core.A secondary audience is technical decision makers who are already familiar ASP.NET or Azure and are looking for information on whether it makes sense to upgrade to ASP.NET Core for new or existing projects.

Como você pode usar este guiaHow you can use this guide

Este guia foi condensado em um documento relativamente pequeno que se concentra na compilação de aplicativos Web com tecnologias .NET modernas e o Microsoft Azure.This guide has been condensed into a relatively small document that focuses on building web applications with modern .NET technologies and Windows Azure. Como tal, ele pode ser lido em sua totalidade para fornecer uma base de compreensão desses aplicativos e suas considerações técnicas.As such, it can be read in its entirety to provide a foundation of understanding such applications and their technical considerations. O guia, junto com seu aplicativo de exemplo, também pode servir como um ponto de partida ou de referência.The guide, along with its sample application, can also serve as a starting point or reference. Use o aplicativo de exemplo associado como um modelo para seus próprios aplicativos ou para ver como você poderia organizar os blocos do aplicativo.Use the associated sample application as a template for your own applications, or to see how you might organize your application's component parts. Confira os princípios do guia, a cobertura das opções de arquitetura e de tecnologia e as considerações de decisões ao ponderar essas opções para seu próprio aplicativo.Refer back to the guide's principles and coverage of architecture and technology options and decision considerations when you're weighing these choices for your own application.

Fique à vontade para encaminhar este guia para sua equipe para ajudar a garantir um entendimento comum dessas considerações e oportunidades.Feel free to forward this guide to your team to help ensure a common understanding of these considerations and opportunities. Quando todas as pessoas trabalham com um conjunto comum de terminologia e de princípios subjacentes é mais fácil garantir a aplicação consistente dos padrões e das práticas de arquitetura.Having everybody working from a common set of terminology and underlying principles helps ensure consistent application of architectural patterns and practices.

ReferênciasReferences