Escolha uma Página
Syncfusion Core: como instalar Identidade e Autorização da Microsoft

Syncfusion Core: como instalar Identidade e Autorização da Microsoft

 Antigamente, ao definir um projeto novo em core MVC, você tinha que definir se o projeto teria ou não identificação/autorização. A partir do core 2.1 isso não é mais necessário. Você pode definir isso depois. Melhor ainda: você pode criar um projeto novo com o Syncfusion, com todos componentes que deseja usar –  e depois acrescentar Autenticação e Identidade da Microsoft

Passo 1: Instale o Gerenciador (Painel de Controle) da Syncfusion

Ao instalar, escolha ao menos a opção Syncfusion ASP.NET Core versão JS 2. Importante: pegue sua licença comunitária na Syncfusion antes… Ela serve para todos seus projetos.

Passo 2: Instale as extensões “Syncfusion Visual Studio extension”.

Você pode definir se quer as extensões para o Visual Studio 2017, 2019 ou ambas. Notar que na verdão 2017 as opções do Syncfusion estarão na barra superior, primeiro nível. Já no 2019. procure em Extesões -> Syncfusion. Veja aqui como fazer.

Passo 3: Gere sua aplicação inicial

Duas opções para gerar:

  1.  A partir do Visual Studio: procure o template CORE MVC com a marca da SYNCFUSION (deve ser o último da lista) e gere a aplicação.
  2. A partir do Painel de Controle da Syncfusion. Neste caso, você pode pré-selecionar todos os componentes que pretende usar em seus projetos.

Nos dois casos você pode escolher se quer arquivos auxiliares locais ou em CDN (eu escolhi CDN) e o tipo de tema que vai querer usar (eu escolhi Bootstrap).

Uma vez que você criou o projeto, rode em debug para ver se está OK na máquina local.

Passo 4: Instale a Identidade/Autorização da Microsoft

  • Clique (com o botão da direita) no nome de seu  projeto no Solution Explorer do Visual Studio. Você deverá rodar o Identity Scafolder;  Add > New Scaffolded Item.
  • No painel esquerdo do diálogo Add Scafold,  selecione  Identity > ADD;
  • No Add Identity, selecione as opções que você vai querer usar (tipo págias de deleção, de troca de senha, de confirmação de e-mail, etc – além da página de login);
    • Selecione a página de layout que você já possui (_layout.cshtm, normalmente em Views/Shared). Do contrário, seu arquivo de layout será escrito com códigos incorretos. Por exemplo , escolha ~/Pages/Shared/_Layout.cshtml  se você tiver páginas Razor. Ou <~/Views/Shared/_Layout.cshtml para projetos MVC (seu caso deve ser este)
    • Selecione o botá + para criar uma Classe de Contexto de Dados (Data context class) . O sistema vai sugerir um, use esse. Se não sugerir, defina um,
  • Selecione ADD.

Passo 5: Acertando o arquivo de Layout (_layout.cshtm)

Para poder “ver” os dados de login assim que rodar a aplicação, é fundamental adicionar no seu arquivo  Views/Shared/_Layout.cshtml o login parcial ( (_loginPartial). Para isso terá que inserir <partial name=“_LoginPartial” />. Como a aplicação usa cookies, também terá de inserir <partial name=”_CookieConsentPartial” />. Veja no arquido de exemplo abaixo onde  deve inserir esses comandos. No SEU próprio arquivo, nã mude MAIS NADA a não ser incluir essas duas linha. Veja um exemplo abaixo (não copie todas as linhas para o seu arquivo  Views/Shared/_Layout.cshtml.

Você tem muitas outras opções de incluir ou alterar a identidade. Basta conferir no artigo “Scaffold Identity in ASP.NET Core projects” da Microsoft.

Passo 6 – Preparando o banco de dados

Muito provavelmente sua aplicação vai rodar em um servidor externo MYSQL ou MSSQL.

Crie o database em vazio (sem tabelas ainda) e pegue a definição da string de conexão. Exemplo:

“Data Source=EndereçoDoServidor;Initial Catalog=NomeDOBancoDeDados;User Id=NomeDoUsuario;Password=SenhaDoUsuario;”

No arquivo appsetings,json TROQUE a string de conexão gerada na criação do seu aplicativo pela sua string de conexão.

Passo 7 – Fazendo o Scafolding acertar seu banco de dados, criando as tabelas para identificação e autorização

A identidade é essencialmente configurada em Areas/Identity/IdentityHostingStartup.cs. Para mais informações, consulte IHostingStartup.

As tabelas do banco de dados para Identidade e Autorização requerem o uso do Entity Framework Core Migrations. Será necessário fazer uma migração e autulizar o banco de dados. Isso pode ser feito em Tools->NudgePackageManager->PacketManagerConsole (usuamente chamada de PMC). Rode os seguintes comando:

 

O parâmetro “CreateIdentitySchema” psrs o comando Add-Migration descreve no nome da migração. Ele é opcional, mas é sempre últil dar um nome para você lembrar depois o que essa migração fez (criou nova tabela, modificou uma tabela, acrescentou um campo, eliminou um campo, etc.

No arquivo startup.cs é fundamental ter certeza que estão as seguintes linhas de configuração da aplicação:

app.UseStaticFiles();

app.UseAuthentication();

A segunda linha é fundamental. Veja abaixo onde encaixar essas 2 linhas:

Agora você pode rodar sua aplicação localmente e fazer os ajustes que quiser. Os 2 artigos da referência dão muitas dicas, inclusive para implementar o serviço de e-mail e alterar páginas Razor.

ASP.NET Web Forms Accordion Control – Syncfusion

ASP.NET Web Forms Accordion Control – Syncfusion

O widget EssentialJavaScriptMobileAccordion é uma interface em que as listas de itens são recolhidas ou expandidas. O controle de acordeões tem vários painéis recolhíveis, onde apenas um pode ser expandido por vez. Tem um modelo para seu cabeçalho e seu conteúdo.

Acordeão – Visão Geral

 O controle Accordion do ASP.NET Syncfusion fornece painéis colapsáveis verticalmente (acordeão vertical) e cabeçalhos empilhados que expandem ou recolhem um ou mais painéis por vez dentro do espaço disponível.

 

Templates (modelos) do Acordeão

O controle Accordion do ASP.NET permite personalizar o cabeçalho e a aparência do painel de conteúdo usando determinados elementos HTML.

Expandir e recolher

O controle Accordion do ASP.NET permite personalizar as ações de expansão e recolhimento.

Modo de expansão

Um único painel ou vários painéis podem se expandir ou recolher (alternar entre painéis) por vez, clicando no cabeçalho do painel (interações) ou programaticamente.

Modo Recolhível

Recolhe todos os painéis de uma só vez. Com opções de personalização, um painel específico é definido para estar em estado aberto enquanto o restante dos painéis é recolhido.

Um desafio que tive: iniciar o acordeão com TODOS elementos recolhidos. Porque, pela documentação, você pode determinar aquele (ou aqueles) que iniciarão abertos, mas ao menos um deve ser aberto no início. A solução foi colocar uma rotina em Javascript que, ao carregar a página .cshtml, fecha todos elementos (vide código abaixo).  

Obrigado pela sua leitura. Continue visitando este blog e compartilhe artigos em sua rede de relacionamento. Por favor, se quiser, registre sugestões e comentários ao final da página.

Syncfusion Core: acelerando o seu desenvolvimento em Core MVC com componentes

Syncfusion Core: acelerando o seu desenvolvimento em Core MVC com componentes

Alcides Soares Filho

Você pode gastar mais de U$5.000 comprando componentes que aceleram o seu desenvolvimento na WEB. Se sua empresa é grande, isso não é nada perto dos custos dos desenvolvedores. Mas se você é pequeno, como eu, poderá contar com licenças especiais ou temporárias, a custo zero. A Syncfusion é a empresa que permite isso. Mas vou lhe dar uma dica aqui de como, sendo desenvolvedor individual, pode conseguir uma licença a custo zero. Acredite em mim.

 Licença Comunitária SYNCFUSION

Se você é um desenvolvedor individual, pode obter toda a linha de produtos gratuitamente. Não é necessário cartão de crédito. São mais de 1.000 Controles e Frameworks para Plataformas de Dados, ferramentas para Big Data, Painéis e Relatórios – que somados representam um valor de US $ 15.960. Que você pode usar gratuitamente no seu desenvolvimento, tendo direito suporte e atualizações. A Syncfusion:

  • Tem mais de 15 anos desenvolvendo software de qualidade;
  • Tem mais de 150 empresas-clientes que estão dentro  das 500 maiores empresas da Fortune;
  • tem mais de 750.000 usuários em mais de 125 países.

Quem é elegível?

Indivíduos e empresas pequenas, com no máximo 5 pessoas de desenvolvimento – e faturamento inferior a US$1 milhão de dólares anuais…

O que você pode obter?

Mais de 1.000 controles e frameworks para desenvolvimento web, desktop e mobile. O pacote mais abrangente de componentes disponíveis para .NET, Javascript, iOS, Android e Xamarin, incluindo grades, diagramas, agendamentos, controles de gantt, mapas, medidores, acoplamentos, fitas e muito mais.

Clique aqui para se cadastrar.

O que você pode obter?

PLATAFORMAS DE DESENVOLVIMENTO

 

FAQ (Perguntas mais frequentes)

Quem é elegível?

Empresas e indivíduos com menos de US $ 1 milhão em receita bruta anual e 5 ou menos desenvolvedores.

Os produtos podem ser usados para construir aplicativos comerciais?

Sim.

Por quanto tempo as licenças são válidas?

As licenças tipo comunidade não expiram. Você continuará recebendo suporte e atualizações para novas versões.

Como o valor de $ 15.960 é calculado?

Cada licença do Essential Studio é avaliada em US $ 1.995. Para empresas que aproveitam o máximo de cinco licenças, o valor total é de US $ 9.975. A licença da comunidade também inclui o Data Platform (plataforma Dashboard, plataforma Report e plataforma Big Data) que eleva o valor total para $ 15.960.

Por que a SYNCFUSION está fazendo isso? Qual é o truque?

A Syncfusion seguiu o exemplo do que a Microsoft fez com o Visual Studio Community Edition e decidiu usar o mesmo modelo com seus produtos também. Não há truque algum, mas a SYNCFUSION agradece se você ajudar a espalhar mensagem pelo Twitter, Facebook e outras redes sociais.

A SYNCFUSION realmente gosta dos desenvolvimentos que você está fazendo. Como ela pode ajudar você?

A SYNCFUSION espera futuramente adicionar ainda mais valor a este programa e nossos serviços. Também precisa da sua ajuda para alcançar mais desenvolvedores.  A SYNCFUSION fica agradecida por qualquer ajuda que divulgue seus produtos através do Twitter, Facebook, e-mail ou blogs.

Você é uma empresa de consultoria que escreve aplicativos para outras organizações. Uma vez qualificada, pode entregar produtos aos seus clientes?

Há dois cenários a serem considerados:

  • Sua organização possui a propriedade intelectual (IP)
    Você entrega binários a seus clientes, que não têm direito sobre o próprio a propriedade intelectual de seus fontes. Neste caso, uma vez que você possui o IP, a redistribuição para outros é permitida sob nossa concessão de redistribuição padrão. É importante que o seu cliente não tenha qualquer direito sobre o IP. Também é importante que o cliente não distribua ou que a trate como uma solução “white-label” o aplicativo resultante. Eles só podem usar a aplicação para fins internos. Se eles quiserem distribuir sua aplicação, o segundo cenário se aplica.
  • Seu cliente possui a propriedade intelectual ou quer distribuir seu aplicativo (construído por você que é o detentor to IP)
    Nesse caso, a Syncfusion permitirá que você forneça a cada cliente uma licença binária comercial grátis gratuitamente. A única condição é que você nos forneça informações sobre seu cliente para que possamos registrar uma licença em seu nome. Caso seu cliente faça desenvolvimento interno ou mova o desenvolvimento para outra organização, ele precisará comprar licenças comerciais reais entrando em contato conosco. Enquanto a sua empresa for a única que trabalha no aplicativo e você continuar atendendo aos requisitos da licença da comunidade, nenhuma outra licença precisará ser adquirida.
A licença da comunidade pode ser usada para projetos de código aberto?

A licença da comunidade pode ser usada em projetos de código aberto, mas a SYNCFUSION solicitamos que você primeiro entre em contato com eles para se registrar. Preencha o formulário “Request Licensing for Open-Source projects” (Solicitação de licenciamento para projetos de código aberto),

Governos ou organizações governamentais são elegíveis para licença comunitária?

Governos – ou qualquer organização relacionada ao governo (ou seja, financiada por dinheiro de impostos, dinheiro público) não é elegível para a Licença da Comunidade. As agências governamentais que não são financiadas pelo contribuinte podem usar a licença da comunidade após assinar um contrato de licença principal. Nesse caso, é necessário entrar em contato para iniciar a solicitação e explicar claramente a ideia.

Obrigado pela sua leitura. Continue visitando este blog e compartilhe artigos em sua rede de relacionamento. Por favor, se quiser, registre sugestões e comentários ao final da página.

Download Visual Studio 2019

Download Visual Studio 2019

Alcides Soares Filho

Chegou o Visual Studio 2019 para Windows e MacOs. Você pode fazer download e usar em paralelo com o Visual Studio 2017. As duas versões não são concorrentes. E o instalador de módulos é comum para as duas versões.

Codifique mais rápido. Trabalhe de maneira mais inteligente. Crie o futuro com o melhor IDE do setor.

 

Download Visual Studio 2019 (Community: IDE poderosos, gratuito para estudantes, colaboradores de código aberto e indivíduos), Supondo que você é um pobretão, como eu; desenvolvedor individual, escolha a opção Visual Studio Community 2019 e click em MODIFY.  Escolha Individual Componentes para WEB Applications e clicks em tudo. Mande instalartudo. Em tese, você tem um Visual 2009 prontinho para trabalhar.

Instalador Visual Studio

Mais informações sobre a versão

Obrigado pela sua leitura. Continue visitando este blog e compartilhe artigos em sua rede de relacionamento. Por favor, se quiser, registre sugestões e comentários ao final da página.

Criar um aplicativo Web com autenticação

Criar um aplicativo Web com autenticação

Alcides Soares Filho

Aqui veremos conceitos básicos sobre a arquitetura MVC (Model-View-Controller). ou seja, um modelo que  separa um aplicativo em três componentes principais: Modelo, Visualizador e Controlador.

Conceito e Benefícios do Modelo MVC (Model-View-Controller)

A arquitetura Model-View-Controller (MVC) separa um aplicativo em três componentes principais: Modelo, Visualizador e Controlador. O padrão MVC ajuda você a criar aplicativos que são mais testáveis e mais fáceis de atualizar do que os aplicativos monolíticos tradicionais. Os aplicativos baseados em MVC contêm:

Modelos: Classes que representam os dados do aplicativo. As classes modelo usam a lógica de validação para impor regras de negócios para esses dados. Normalmente, os objetos do modelo recuperam e armazenam o estado do modelo em um banco de dados. Neste tutorial, um modelo de filme (Movie) recupera dados de filmes de um banco de dados, fornece-o para a visualização ou para atualização. Os dados atualizados são gravados em um banco de dados. Os Modelos ficam normalmente armazenados numa pasta Models, em arquivos com NomeDoModelo.cs. Os modelos, além de descreverem os dados da aplicação, podem incorporar várias regras de negócio. Para cada “campo” você pode definir um nome padrão, se é requerido, seu intervalo, se é chave, o tipo de mensagem de erro, a formatção numérica ou de data e assim por diante. Toda vez que você usar o campo, na aplicação, ele assumirá essas regras por definição. Ou seja, você define isso uma única vez e esquece no restante do código).

Visualizadores: são os componentes que exibem a interface do usuário (UI) do aplicativo. Geralmente, essas UIs (user interfaces) exibem os dados do modelo (do banco de dados). Os visualizadores (Views) ficar normalmente armazenados numa pasta Views, em arquivos NomeDoVisualizador.cshtml (equivalem às páginas HTML que conhecemos bem, só que permitem acessos diretos a dados manipulados nos controladores, tornando-se dinâmicas e não estáticas. Além disso, permitem uso de lógicas bem interessantes tipo mostre isso se… ou mostre aquilo se…. Outro benefício é que usam auxiliadores de tags (Tag Helpers), que ajudam a escrever a página com pouquíssimo código. Quando ela é compilada, o código se expande e se torna completo para ser interpretado corretamente pelos navegadores HTML5. O Core tem uma fantástica biblioteca de Tags e, se isso não bastar, você pode criar suas próprias Tags, indo muito além do HTML5.

Controladores: são classes que manipulam solicitações do navegador. Eles recuperam os dados do modelo e chamam os modelos de exibição (visualizadores ou Views) que retornam uma resposta. Também são os controladores, em geral (se você não interferir com programas em Javascript ou Jquery) que, cada vez que o usuário clica em alguma coisa, captam esse clique e executam uma ação correspondente. Em um aplicativo MVC, em geral a o visualizador apenas exibe informações e fica aguardando uma ação do usuário. Assim que o usuário clica em algo é o controlador faz alguma coisa, devolvendo ao visualizador(View) o que deve ser mostrado ao usuário. Se o usuário clicou por exemplo num item de menu, é o controlador que manipula dados, procurando a rota de navegação e, se forem passados parâmetros nesse link, ele processa os dados com esses parâmetros (no banco de dados), faz cálculos se necessários e devolve para o visualizador (View)o que deve ser mostrado na tela (no caso, outra página, com os dados de consulta solicitados pelo usuário). É sempre o Controlador (Controller) que interage com o banco de dados, e sempre seguindo as regras e definições dos Modelos (Models). Por exemplo (rodando no modo local, em localhost), se o usuário clica num item de que tem http://localhost:1234/Home/About, o controlador sabe que a rota é Home (em geral um subdiretório do diretório Views), onde vai buscar o arquivo About.cshtml. Só que, antes de mostrar o arquivo de visualização, ele consulta uma ação, também definida dentro dele (controlador Home.cs). Essa ação pode ser a mais simples possível, tipo “apenas mostre a página Home.cshtml) (na prática, o código é return View(), ou seja mostre a página e ponto final). Se a página About vai ter que mostrar algum dado do seu banco de dados, o controlador manda ler esses dados, conforme o seu modelo diz que tem que ser, e os entrega para a página de visualização. Nisso, em geral, ele faz o trabalho ompleto: entrega para a página About tudo o que está no seu modelo. Pode ser que os dados da sua empresa tenham CNPJ, Endereço de Entrega, Nome da Empresa, E-mail de Contato. O que vai aparecer na página About? Somente o que você definir que tem que aparecer. Poder só Nome da Empresa, Telefone e E-mail de Contato. Veja a sequência na figura abaixo:

 

O Padrão MVC – Adicionando um Controller

O padrão MVC ajuda você a criar aplicativos que separam os diferentes aspectos do aplicativo (lógica de entrada, lógica de negócios e lógica de UI (user interface ou interface de usuário).

Ao mesmo tempo, proporcionam um acoplamento livre entre esses elementos. O padrão especifica onde cada tipo de lógica deve estar localizada na aplicação: a lógica da UI pertence ao Visualizador. A lógica de tratamento dos dados de entrada pertencem ao controlador. A lógica de negócios (e, em geral, de apresentação) pertence ao modelo.

Essa separação ajuda você a gerenciar a complexidade na criação de um aplicativo. Porque você trabalhar em um aspecto da implementação sem afetar o código de outro aspecto. Por exemplo, você pode trabalhar no código de exibição (que ficam no Visualizador ou View), sem se preocupar com as lógicas de aquisição e processamento dos dados (que ficam no Controlador ou Controller)  ou de apresentação dos dados (que ficam no Modelo. ou Model). Veremos todos estes conceitos nesta série de artigos deste tutorial e mostraremos como usá-los para criar um aplicativo, no nosso exemplo, de filmes.

Um projeto MVC contém pastas específicas para controladores, modelos e visualizadores, como já mencionamos. Para adicionar um controlador:

  • Em Solutions Explorer, clique com o botão direito do mouse em Controllers> Add> New Item

 

  • Selecione MVC Controller Class
  • No diálogo Add New Item, entre com HelloWorldController

 

Troque o conteúdo de Controllers/HelloWorldController.cs com o seguinte código
Todo método público (public) em um controlador é “chamável” como um endereço HTTP.

Na exemplo acima, os dois métodos retornam uma “string” (texto). Observe os comentários que precedem cada método.

Um ponto final (endpoint) HTTP é um URL endereçável pelo aplicativo da Web, assim como http://localhost:1234/HelloWorld. E combina o protocolo usado: HTTP, a localização na rede do servidor web (incluindo a Porta TCP, no caso da depuração local localhost:1234 e o arquivo de visualização alvo, no caso, HelloWorld.

Note que é feita uma chamada tipo GET. Ou seja ,é preciso pegar alguma coisa para mostrar. Por isso é um método HTTP GET, chamado pela adição de “/HelloWorld /” na URL base.

O segundo comentário também mostra um método HTTP GET, que é chamado pela adição de “/HelloWorld/Welcome/” à URL. Mais tarde, neste tutorial, você usará o mecanismo de “scaffolding” para gerar métodos HTTP POST (ou seja, que vão devolver dados para os visualizadores).

Execute o aplicativo em modo não depurado e acrescente “HelloWorld” ao caminho, na barra de endereços. O método Index retornará uma string (um texto).

O MVC invoca as classes do controlador (e os métodos de ação dentro delas) dependendo da URL recebida. A lógica de roteamento de URL padrão usada pelo MVC usa um formato como esse para determinar o código a ser invocado:

/[Controller]/[ActionName]/[Parameters]

Você é quem configura o formato de roteamento no arquivo Startup.cs.

Quando você executa o aplicativo e não fornece nenhum segmento de URL, o padrão para o controlador segue o que está definido no padrão acima – no caso “Home” e com o  método “Index“.

A “primeira” parte da URL determina a classe do controlador a ser executada. A segunda parte do segmento de URL determina o método de ação (Acction) dwntro da classe.

Por exemplo, localhost:xxxx/HelloWorld/15 mapeia para a classe HelloWorldController (arquivo HelloWorldController.cs) .  Observe que você só teve que navegar para localhost: xxxx/HelloWorld.

Isso ocorre porque o Index é o método padrão (default)  que será chamado em um controlador se um nome de método não for DIRETAMENTE especificado.

A terceira parte do segmento de URL (em geral é uma id) é para dados de rota. Ou seja, é a passagem de um parâmetros, como estamos acostumados em chamadas do tipo htttp:minhauerl.com.br?id=15.  Veremos dados de parâmetros nas rotas mais tarde neste tutorial.

Navegue até http://localhost: xxxx/HelloWorld. (xxx é definido no seu Visual Studio). Você verá a tela com as boas-vindas, que retorna a string “This is the Welcome method” (este é o método de boas vindas).  Para esta URL, o controlador é HelloWorld e Welcome é a ação (Action) do método. Neste exemplo simples, ainda não foram utilizados [Parâmetros] na URL.

Modifique o código, passando agora algum parâmetro na URL. Por exemplo, /HelloWorld/Welcome?name=Maria&numtimes=4. Mude o método Welcome para que ele aceite (e opere) estes 2 parâmetros, de acordo com o seguinte código:

 

O código acima:

  • Usa o recurso C# de parâmetro opcional para indicar que o parâmetro numTimes  tem o valor padrão  = 1 se nenhum valor for passado para esse parâmetro;
  • Utiliza UsesHtmlEncoder.Default.Encode para proteger a aplicação de entrada maliciosa (ou seja, entradas do tipo JavaScript);
  • Usa “Interpolated strings” (textos interpolados), que são acrescentados dentro dos {}.

Rode sua aplicação e navegue para:

http://localhost:xxx/HelloWorld/Welcome?name=Rick&numtimes=4

(Troque xxx pelo número da porta que seu Visual Studio definiu).

Você pode usarr diferentes valores para nomes e números na URL. O sistema de ligação (binding)  do modelo MVC mapeia automaticamente os parâmetros nomeados da cadeia de consulta na barra de endereços para os parâmetros dentro do seu método. mais tarde veremos com detalhes essa questão de ligação (binding).

Na imagem acima. o segmento da URL (Parameters) não é usado dentro do padrão do Core MVC. Os parâmetros name e numTimes são passados como “query strings” (do jeito como estamos acostumados). É por isso que aparece o ? (interrogação) na URL, que é um separador, que tem os parâmetros depois dele. Como você sabe, o carácter & separa as strings de uma query.

Troque o método Welcome pelo seguinte código:

 

 

Rode a aplicação e entre com a seguinte URL (no seu navegador):

http://localhost/xxx/HelloWorld/Welcome/3?name=Rick

Desta vez, o terceiro segmento de URL corresponde ao id do parâmetro da rota. O método de Welcome contém um ID de parâmetro que corresponde ao modelo de URL no método MapRoute. A trilha? (em id?) Indica que o parâmetro id é um parâmetro opcional. (é bem importante lembrar disso).
Nestes exemplos, o controlador está fazendo a parte “VC” do MVC – isto é, a visão e o controlador é que trabalham de verdade. O controlador está retornando HTML diretamente. Geralmente você não quer que os controladores retornem o HTML diretamente, já que isso se torna muito pesado ao codificar e manter essa codificação. Em vez disso, você geralmente usa um arquivo de modelo de visualização (View). que é um arquivo tipo template (Razor), separado, para ajudar a gerar a resposta em HTML. Veremos isso no próximo tutorial.

No Visual Studio, no modo de não-depuração (Ctrl + F5), você não precisa criar o aplicativo depois de alterar o código. Basta salvar o arquivo, atualizar seu navegador e você pode ver as mudanças. Se estiver no mode de depuração simples. mudanças nos arquivos de visualização, se salvos, podem ser vistos sem a necessidade de recompilar a aplicação. Isso facilta muito, pois nasta dar um “refresh” na página do navegador.

Obrigado pela sua leitura. Continue visitando este blog e compartilhe artigos em sua rede de relacionamento. Por favor, se quiser, registre sugestões e comentários ao final da página.