{"id":1830,"date":"2016-12-27T10:49:46","date_gmt":"2016-12-27T12:49:46","guid":{"rendered":"https:\/\/blog.umbler.com\/?p=1830"},"modified":"2018-12-05T16:16:25","modified_gmt":"2018-12-05T18:16:25","slug":"asp-net-core","status":"publish","type":"post","link":"https:\/\/blog.umbler.com\/br\/asp-net-core\/","title":{"rendered":"ASP.NET Core"},"content":{"rendered":"<p>J\u00e1 faz algum tempo que a Microsoft v\u00eam mudando sua abordagem, o que n\u00e3o reflete s\u00f3 em seus produtos ou modelos de assinatura, mas tamb\u00e9m na comunidade que ela criou em volta das ferramentas que a gigante de <a href=\"https:\/\/blog.umbler.com\/br\/avancos-em-ia-generativa\/\">tecnologia<\/a> distribui para os desenvolvedores. Impulsionada pela ascens\u00e3o do Azure, a Microsoft v\u00eam investindo cada vez em tecnologias open source, como exemplo do NodeJS e ferramentas de backend como Docker. Mas, al\u00e9m da ajuda a fomentar as tecnologias open source j\u00e1 estabelecidas, de algum tempo pra c\u00e1 a Microsoft vem investindo em tornar tamb\u00e9m sua plataforma de desenvolvimento open source. A\u00ed que surge o ASP.NET Core.<\/p>\n<p>Como diria Phil Karlton: \u201cExistem duas coisas muito dif\u00edceis no mundo da ci\u00eancia da computa\u00e7\u00e3o: invalida\u00e7\u00e3o de cache e nomear coisas\u201d. At\u00e9 chegar neste nome foram algumas tentativas e erros, portanto, se voc\u00ea ver por ai algu\u00e9m falando em ASP.NET 5 ou ASP.NET vNext, pode saber que est\u00e3o falando da nova gera\u00e7\u00e3o do ASP.NET. Certo, e al\u00e9m do nome, o que mudou no ASP.NET Core? Uma das principais caracter\u00edsticas dessa nova plataforma \u00e9 o fato de agora ela ser open source. E, em se tratando de uma tecnologia da Microsoft, o fato do c\u00f3digo estar aberto e dispon\u00edvel para qualquer um <a href=\"https:\/\/github.com\/aspnet\/Home\" target=\"_blank\" rel=\"nofollow noopener\">visualizar<\/a> \u00e9 realmente um grande passo.<\/p>\n<p>Al\u00e9m de open source, o ASP.NET agora \u00e9 multiplataforma, o que n\u00e3o restringe que as aplica\u00e7\u00f5es sejam feitas apenas utilizando a boa e velha dupla Windows + Visual Studio. Sim, voc\u00ea vai poder desenvolver aplica\u00e7\u00f5es .NET Core em sua distribui\u00e7\u00e3o Linux preferida e com sua IDE preferida. \ud83d\ude42 Outro ponto muito importante que a Microsoft introduziu no .NET Core foi o forte senso de modularidade. Diferente do .NET Framework, que possui bibliotecas para resolver qualquer problema, e, por isso, se torna t\u00e3o pesado, o .NET Core possui somente o b\u00e1sico. Se voc\u00ea precisar de algo mais espec\u00edfico vai ter que baixar a biblioteca via NuGet package. <img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter wp-image-1831 size-full\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2016\/12\/aspnetcore.png\" alt=\"ASP.NET Core\" width=\"999\" height=\"450\" \/> Essa modularidade do .NET Core e outras modifica\u00e7\u00f5es tornaram o framework muito mais veloz do que o anterior. Existem diversos benchmarks dispon\u00edveis na internet realizando compara\u00e7\u00f5es do .NET Core com outras plataformas e os resultados seguem muito impressionantes, como voc\u00ea pode acompanhar <a href=\"https:\/\/github.com\/aspnet\/benchmarks\" target=\"_blank\" rel=\"nofollow noopener\">neste link<\/a>. Agora que sabemos que existir\u00e3o cada vez mais desenvolvedores .NET que ir\u00e3o utilizar sistemas operacionais diferente do Windows, tamb\u00e9m sabemos que n\u00e3o necessitamos mais de utilizar apenas a velha dupla Visual Studio + Windows para criar aplica\u00e7\u00f5es .NET.<\/p>\n<p>Com o crescimento da utiliza\u00e7\u00e3o do .NET Core nasceram novas ferramentas para facilitar o dia a dia do programador. Agora que .NET \u00e9 multiplataforma, torna-se cada dia mais f\u00e1cil criar e manter uma aplica\u00e7\u00e3o .NET Core somente atrav\u00e9s de linha de comando. Utilizando o Yeoman, por exemplo, podemos ter uma aplica\u00e7\u00e3o .NET Core em poucos minutos. E, para evitar perder mercado, a Microsoft n\u00e3o perdeu tempo e lan\u00e7ou o Visual Studio Code, uma vers\u00e3o muito mais leve e enxuta do seu consagrado Visual Studio. O Visual Studio Code possui suporte a Windows, Linux e Mac e conta, tamb\u00e9m, com diversas extens\u00f5es que podem ser instaladas para tornar o desenvolvimento dentro da ferramenta mais inteligente, f\u00e1cil e din\u00e2mico. Das extens\u00f5es mais utilizadas no Visual Studio Code, podemos notar que aquelas para aux\u00edlio de linguagens como Python e Go est\u00e3o entre as top 10, o que demonstra claramente que o Visual Studio Code est\u00e1 agradando desenvolvedores de outras linguagens e plataformas. <img decoding=\"async\" class=\"aligncenter wp-image-1839 size-full\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2016\/12\/extensoesvisualstudiocode.png\" alt=\"Extens\u00f5es mais utilizadas no Visual Studio Code\" width=\"597\" height=\"348\" \/> Para demonstrar a facilidade da cria\u00e7\u00e3o de uma aplica\u00e7\u00e3o ASP.NET Core vamos criar dois exemplos: a primeira demonstra\u00e7\u00e3o ser\u00e1 feita utilizando o apenas o <em>command line<\/em> disponibilizado pela pr\u00f3pria plataforma e o editor VS Code e a segunda somente com Visual Studio.<\/p>\n<p>Para o primeiro exemplo vamos ter que instalar algumas ferramentas, ent\u00e3o vamos \u00e0 elas. A primeira delas \u00e9 o VS Code, que est\u00e1 dispon\u00edvel atrav\u00e9s <a href=\"https:\/\/code.visualstudio.com\/Download\" target=\"_blank\" rel=\"nofollow noopener\">deste link<\/a>. Com o VS Code em m\u00e3os, temos agora que instalar o command line disponibilizado atrav\u00e9s do <a href=\"https:\/\/go.microsoft.com\/fwlink\/?LinkID=835014\" target=\"_blank\" rel=\"nofollow noopener\">link<\/a>. Com isso temos instalado tudo o que necessitamos para criar e manter uma aplica\u00e7\u00e3o ASP.NET Core. Quem j\u00e1 experimentou o desenvolvimento de tecnologias disponibilizadas pela Microsoft j\u00e1 come\u00e7a a sentir uma grande mudan\u00e7a neste ponto. Diferentemente dos <em>boilerplates<\/em> padr\u00f5es de aplica\u00e7\u00f5es no modelo <em>Create\/New Project<\/em>, para este exemplo vamos usar apenas o nosso velho e bom CMD. <img decoding=\"async\" class=\"aligncenter wp-image-1832 size-full\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2016\/12\/saywhat.gif\" alt=\"Say What Novidades Asp.Net Core\" width=\"366\" height=\"200\" \/> Vamos l\u00e1, com o cmd aberto, vamos navegar at\u00e9 o diret\u00f3rio onde queremos criar nossa aplica\u00e7\u00e3o. Agora, executaremos alguns comandos:<\/p>\n<pre class=\"code-highlighter line-numbers theme-dark\"><code class=\"language-powershell\">\r\nmkdir aspNetCoreNaUmbler\r\ncd aspNetCoreNaUmbler\r\ndotnet new\r\n<\/code><\/pre>\n<p>Pronto, com isso criamos nossa primeira aplica\u00e7\u00e3o e conseguimos visualizar os arquivos criados executando o comando <code>code<\/code>, que vai abrir o VS Code no diret\u00f3rio da aplica\u00e7\u00e3o. Nossa aplica\u00e7\u00e3o, por\u00e9m, ainda n\u00e3o est\u00e1 funcionando, pois ela possui algumas depend\u00eancias de pacotes que ainda n\u00e3o est\u00e3o instalados. Nosso pr\u00f3ximo passo, ent\u00e3o, \u00e9 resolver este problema executando o comando <code>dotnet restore<\/code>. Com o \u201cdotnet restore\u201d acessamos o Nuget e baixamos todas as depend\u00eancias que est\u00e3o citadas no arquivo <code>project.json<\/code>. Agora temos nossa aplica\u00e7\u00e3o .NET Core funcionando. \ud83d\ude42<\/p>\n<p style=\"text-align: left;\">Agora, para o pessoal que gosta de usufruir das facilidades que o Visual Studio Community proporciona, vamos demonstrar como fazer a cria\u00e7\u00e3o de uma aplica\u00e7\u00e3o de exemplo feita com o ASP.NET Core. Primeiramente, voc\u00ea deve instalar o .NET Core tools preview for Visual Studio dispon\u00edvel <a href=\"https:\/\/go.microsoft.com\/fwlink\/?LinkID=827546\" target=\"_blank\" rel=\"nofollow noopener\">neste link<\/a>. Ap\u00f3s instalar o Visual Studio, voc\u00ea vai poder ver a cria\u00e7\u00e3o de projetos do tipo .NET Core dentro do menu <strong>New Project<\/strong>. Diferente da vers\u00e3o anterior, na qual criamos a aplica\u00e7\u00e3o via linha de comando e tivemos que restaurar os pacotes de depend\u00eancia do projeto manualmente, tanto do Nuget quanto do NPM, com este Tool do Visual Studio o restore das depend\u00eancias \u00e9 feito automaticamente quando iniciado o projeto. Veja todo o processo no v\u00eddeo abaixo, incluindo a publica\u00e7\u00e3o dentro da Umbler.<\/p>\n<p><center><br \/>\n<iframe src=\"https:\/\/www.youtube.com\/embed\/mWK162Q3GeY\" width=\"854\" height=\"480\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/center><\/p>\n<p style=\"text-align: left;\">Que tal criar sua conta na <a href=\"https:\/\/umbler.com\" target=\"_blank\" rel=\"noopener\">Umbler<\/a> para testar o ASP.NET Core agora? Nos contem nos coment\u00e1rios o que est\u00e3o achando!<\/p>\n<p><strong>Contribuiu com o post<\/strong>: Marcos Artigas, Software Engineer da Umbler.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>J\u00e1 faz algum tempo que a Microsoft v\u00eam mudando sua abordagem, o que n\u00e3o reflete s\u00f3 em seus produtos ou modelos de assinatura, mas tamb\u00e9m na comunidade que ela criou em volta das ferramentas que a gigante de tecnologia distribui para os desenvolvedores. Impulsionada pela ascens\u00e3o do Azure, a Microsoft v\u00eam investindo cada vez em [&hellip;]<\/p>\n","protected":false},"author":48,"featured_media":5439,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[220,221,222,223,224],"class_list":["post-1830","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-updates","tag-net","tag-asp-net-core","tag-microsoft","tag-visual-studio","tag-visual-studio-code"],"_links":{"self":[{"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/posts\/1830"}],"collection":[{"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/users\/48"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/comments?post=1830"}],"version-history":[{"count":0,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/posts\/1830\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/media\/5439"}],"wp:attachment":[{"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/media?parent=1830"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/categories?post=1830"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/tags?post=1830"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}