criando projeto da api

This commit is contained in:
Gabriel Almeida Bueno 2025-02-26 17:36:49 -03:00
parent f973e62ec8
commit 6d42b4b575
28 changed files with 257 additions and 1 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

@ -0,0 +1,30 @@
kbd {
font-family: var(--font-mono);
font-size: 14px;
background-color: var(--color-kbd-bg);
color: var(--color-kbd-fg);
padding: 3px 6px;
border: 1px solid var(--color-kbd-border);
border-radius: 6px;
box-shadow: 2px 2px lightgray;
}
code {
font-family: var(--font-mono);
}
code:not(pre *) {
background-color: var(--color-code-bg);
color: var(--color-code-fg);
padding: 3px 6px;
border: 1px solid var(--color-code-border);
border-radius: 6px;
}
pre:has(code) {
background-color: var(--color-codeblock-bg);
color: var(--color-codeblock-fg);
padding: 16px;
border: 1px solid var(--color-codeblock-border);
border-radius: 10px;
}

View File

@ -1,8 +1,22 @@
:root { :root {
/* light theme */
/* --color-bg: #e0e0e0; */ /* --color-bg: #e0e0e0; */
--color-bg: #fff5ee; --color-bg: #fff5ee;
--color-fg: #1c1c1c; --color-fg: #1c1c1c;
--color-kbd-bg: beige;
--color-kbd-fg: var(--color-fg);
--color-kbd-border: lightgray;
--color-codeblock-bg: beige;
--color-codeblock-fg: var(--color-fg);
--color-codeblock-border: lightgray;
--color-code-bg: beige;
--color-code-fg: var(--color-fg);
--color-code-border: lightgray;
/* dark theme */
/* --color-bg: #1c1c1c; /* --color-bg: #1c1c1c;
--color-fg: #fff5ee; */ --color-fg: #fff5ee; */

View File

@ -0,0 +1,2 @@

View File

@ -6,6 +6,7 @@
import "../css/anchor.css"; import "../css/anchor.css";
import "../css/list.css"; import "../css/list.css";
import "../css/img.css"; import "../css/img.css";
import "../css/code.css"
let { children } = $props(); let { children } = $props();
</script> </script>

View File

@ -1 +1,210 @@
<p>em desenvolvimento</p> <script>
import ImgVscVazio from "../../assets/img/14_vsc_vazio.webp";
import ImgVscExplorer from "../../assets/img/15_vsc_explorer.webp";
import ImgVscDebugger from "../../assets/img/16_vsc_debugger.webp";
import ImgVscExtensions from "../../assets/img/17_vsc_extensions.webp";
import ImgVscCriandoNovaPasta from "../../assets/img/18_vsc_criando_nova_pasta.webp";
import ImgVscSelecionandoPastaVazia from "../../assets/img/19_vsc_selecionando_pasta_vazia.webp";
import ImgVscConfia from "../../assets/img/20_vsc_confia.webp";
import ImgVscPastaAberta from "../../assets/img/21_vsc_pasta_aberta.webp";
import ImgVscTerminal from "../../assets/img/22_vsc_terminal.webp";
import ImgVscDotnetVersion from "../../assets/img/23_vsc_dotnet_version.webp";
import ImgVscDotnetNew from "../../assets/img/24_vsc_dotnet_new.webp";
import ImgVscDotnetRun from "../../assets/img/25_vsc_dotnet_run.webp";
</script>
<svelte:head>
<title>Breve introdução ao Visual Studio Code</title>
</svelte:head>
<section>
<h1>Breve introdução ao Visual Studio Code</h1>
<nav>
<a href="/">Início</a>
</nav>
<p>
Uma nova janela do VSCode, sem nada aberto, se parecerá com isso:
</p>
<div>
<img src={ImgVscVazio} alt=""/>
</div>
<p>
Note a barra lateral à esquerda. Há cinco botões, onde cada um abre uma ferramenta diferente do editor. Elas são, respectivamente:
</p>
<ol>
<li>- Explorador de arquivos</li>
<li>- Busca</li>
<li>- Controle de versionamento</li>
<li>- Depurador</li>
<li>- Gerenciador de extensões</li>
</ol>
<p>
Clique no primeiro botão para abrir o explorador de arquivos.
</p>
<div>
<img src={ImgVscExplorer} alt=""/>
</div>
<p>
Nesta aba serão mostrados os arquivos do <em>diretório que está aberto no VSCode</em>. Como ainda
não temos nenhum diretório aberto, o editor apresenta um botão para que possamos abrir um. Vamos fazer isso mais tarde.
</p>
<p>
Podemos ignorar a busca e o controle de versionamento por enquanto. Clique no quarto botão da barra lateral.
O depurador (ou <em>debugger</em>, em inglês) será exibido.
</p>
<div><img src={ImgVscDebugger} alt=""/></div>
<p>
Assim como no explorador de arquivos, como não temos nenhum diretório aberto, o VSCode apresenta algumas opções padrão. O que precisamos
saber agora é que, quando criarmos o projeto da API, poderemos utilizar esta aba para <em>depurar</em> (ou <em>debugar</em>) o nosso código. Ou seja, executar nosso
código passo a passo e inspecionar as nossas variáveis. Esta é uma ferramenta valiosa para nos ajudar a entender e resolver bugs.
</p>
<p>
Por fim, clique no último botão da barra lateral. O gerenciador de extensões será exibido.
</p>
<div><img src={ImgVscExtensions} alt=""/></div>
<p>
Nesta aba podemos instalar extensões ao VSCode. Quando iniciarmos o desenvolvimento da API, iremos instalar a extensão oficial para o desenvolvimento em C#.
Esta extensão irá adicionar <em>ferramentas de inteligência de linguagem</em> que disponibilizarão a
análise estática do código e o
<a href="https://en.wikipedia.org/wiki/Language_Server_Protocol">LSP</a> <a href="http://www.omnisharp.net/">Omnisharp</a>, além do depurador.
Em resumo, serão instaladas ferramentas que irão nos auxiliar no processo de desenvolvimento.
</p>
<p>
Agora, vamos criar um Hello World com C#, para testarmos se nossa instalação do SDK do .NET foi realmente bem sucedida. Volte no explorador de arquivos, e clique em "Abrir" para
abrir um diretório no VSCode.
</p>
<div>
<img src={ImgVscExplorer} alt=""/>
</div>
<p>
O diálogo de seleção de arquivos do seu sistema será exibido. Crie uma pasta <em>vazia</em> em algum lugar de fácil acesso no seu computador, e a selecione para abrir.
</p>
<div>
<img src={ImgVscCriandoNovaPasta} alt="">
</div>
<p>
Neste exemplo, criei uma pasta chamada "HelloWorld".
</p>
<div>
<img src={ImgVscSelecionandoPastaVazia} alt="">
</div>
<p>
A pasta recém-criada está vazia e foi selecionada para ser aberta. Ao abrir, é possível que o VSCode pergunte
se você realmente confia neste diretório.
</p>
<div>
<img src={ImgVscConfia} alt="">
</div>
<p>
Como foi você mesmo que o criou, selecione a caixa para que o editor
confie neste diretório e em todos os arquivos dentro dele, e confirme.
</p>
<div><img src={ImgVscPastaAberta} alt=""/></div>
<p>
Agora temos nossa pasta aberta no editor. Observe que a aba do explorador de arquivos está vazia agora, sem nada. Isto acontece
pois, como a pasta está vazia, não temos nenhum arquivo. Assim que eles foram criados, aparecerão aí.
</p>
<p>
Agora vamos criar um projeto simples que apenas irá exibir uma saudação. Para fazer isso, precisaremos executar alguns comandos no <em>terminal</em>. O VSCode
tem um terminal embutido. Para abrí-lo, aperte <kbd>Ctrl</kbd>+<kbd>j</kbd> (<kbd></kbd>+<kbd>j</kbd> no MacOS)
</p>
<div><img src={ImgVscTerminal} alt=""/></div>
<p>
Observe que uma aba foi aberta na parte inferior da janela. Este é o terminal onde digitaremos alguns comandos para testar a instalação do dotnet, e criar um novo projeto.
</p>
<p>
Antes de tudo, digite o seguinte comando:
</p>
<pre><code>dotnet --version</code></pre>
<p>
A saída do comando deve ser algo como
</p>
<pre><code>9.0.200</code></pre>
<div><img src={ImgVscDotnetVersion} alt=""/></div>
<p>
Se a versão do SDK que você instalou foi exibida na saída do comando, então a instalação está correta. Vamos criar um projeto agora. Para isso, ainda no terminal, execute o comando:
</p>
<pre><code>dotnet new console</code></pre>
<p>
Este comando irá criar um projeto simples em C# do tipo <em>console</em>. Observe na aba do explorador de arquivos
os novos arquivos criados.
</p>
<div><img src={ImgVscDotnetNew} alt=""/></div>
<p>
A estrutura de diretórios agora está assim:
</p>
<ol>
<li><code>HelloWorld/</code></li>
<ol>
<li><code>obj/</code></li>
<li><code>HelloWorld.csproj</code></li>
<li><code>Program.cs</code></li>
</ol>
</ol>
<p>
Nas próximas seções, iremos nos aprofundar na estrutura criada pelo .NET e o que cada um destes arquivos faz.
</p>
<p>
Agora, vamos executar este projeto. Ainda no terminal, execute:
</p>
<pre><code>dotnet run</code></pre>
<div><img src={ImgVscDotnetRun} alt=""/></div>
<p>
Como manda a tradição, a saída apresentará:
</p>
<pre><code>Hello, World!</code></pre>
<p>
Se você vê esta mensagem no seu terminal, então estamos prontos para prosseguir. Vamos agora criar um novo projeto de API.
</p>
<nav>
<span>Próximo passo:</span>
<a href="/criando_o_projeto">Criando o projeto da API</a>
</nav>
</section>