As 55 principais perguntas e respostas da entrevista MVC (PDF)

Aqui estão as perguntas da entrevista MVC para candidatos mais novos e experientes para conseguir o emprego dos sonhos.

 

Perguntas e respostas da entrevista MVC para calouros

1) O que é Model-View-Controller?

MVC é um padrão de arquitetura de software para desenvolvimento de aplicações web. Ele é tratado por três objetos, Model, View e Controller.

👉 Download gratuito de PDF: Perguntas e respostas da entrevista MVC


2) O que Model-View-Controller representa em uma aplicação MVC?

Em um modelo MVC,

  • Modelo– Representa o domínio de dados do aplicativo. Em outras palavras, a lógica de negócios de uma aplicação está contida no modelo e é responsável pela manutenção dos dados.
  • Ver– Representa a interface do usuário com a qual os usuários finais se comunicam. Resumindo, toda a lógica da interface do usuário está contida no View.
  • Controlador- É o controlador que responde às ações do usuário. Com base nas ações do usuário, o respectivo controlador responde dentro do modelo e escolhe uma visualização para renderizar que exibe a interface do usuário. A lógica de entrada do usuário está contida no controlador.

3) Nomeie o assembly para definir MVC

A Estrutura MVC é definido no assembly System.Web.Mvc.


4) Quais são os diferentes tipos de retorno de um método de ação do controlador

Aqui estão diferentes tipos de retorno de um método de ação do controlador:

  • Ver Resultado
  • JavaResultado do script
  • Resultado de redirecionamento
  • Resultado JSON
  • Resultado de conteúdo

5) Qual é a diferença entre adicionar rotas a uma aplicação webform e a uma aplicação MVC?

Para adicionar rotas a um aplicativo webform, usamos o método MapPageRoute() da classe RouteCollection, enquanto para adicionar rotas a um aplicativo MVC, usamos o método MapRoute().


6) Quais são as duas maneiras de adicionar restrições a uma rota?

Os dois métodos para adicionar restrições a uma rota são

  • Use expressões regulares
  • Use um objeto que implemente a interface IRouteConstraint

7) Quais são as vantagens do MVC?

  • O MVC separa seu projeto em um segmento diferente e fica mais fácil para os desenvolvedores trabalharem nele.
  • É fácil editar ou alterar alguma parte do seu projeto que se beneficie com menor custo de desenvolvimento e manutenção do projeto
  • MVC torna seu projeto mais sistemático
  • Representa uma separação clara entre lógica de negócios e lógica de apresentação
  • Cada objeto MVC tem responsabilidades diferentes
  • O desenvolvimento progride em paralelo
  • Fácil de gerenciar e manter
  • Todas as classes e objetos são independentes uns dos outros

8) O que as funções “beforeFilter()”,”beforeRender” e “afterFilter” fazem no Controller?

  • antesFiltro(): Esta função é executada antes de cada ação no controlador. É o lugar certo para verificar uma sessão ativa ou inspecionar as permissões do usuário.
  • antesRender(): Esta função é chamada após a lógica de ação do controlador, mas antes da visualização ser renderizada. Esta função não é usada com frequência, mas pode ser necessária se você estiver chamando render() manualmente antes do final de uma determinada ação.
  • depoisFiltro(): Esta função é chamada após cada ação do controlador e após a conclusão da renderização. É o último método do controlador a ser executado.

9) Qual é o papel dos componentes Apresentação, Abstração e Controle no MVC?

Aqui está a função dos componentes Apresentação, Abstração e Controle no MVC:

  • Apresentação: É a representação visual de uma abstração específica dentro do aplicativo
  • Abstração: É a funcionalidade do domínio comercial dentro do aplicativo
  • Ao controle: É um componente que mantém consistência entre a abstração dentro do sistema e sua apresentação ao usuário além de se comunicar com outros controles dentro do sistema

10) Quais são as desvantagens do modelo MVC?

Aqui estão algumas desvantagens importantes do modelo MVC:

  • O padrão do modelo é um pouco complexo.
  • Ineficiência de acesso aos dados em vista.
  • Com uma interface de usuário moderna, é difícil usar o MVC.
  • Você precisa de vários programadores para desenvolvimento paralelo.
  • É necessário conhecimento de múltiplas tecnologias.

11) Qual é o papel dos “ActionFilters” no MVC?

No MVC, “ActionFilters” ajudam você a executar a lógica enquanto a ação MVC é executada ou está em execução.


12) Quais são as etapas para execução de um projeto MVC?

As etapas para a execução de um projeto MVC incluem:

  • Receba a primeira solicitação do aplicativo
  • Executar roteamento
  • Crie um manipulador de solicitação MVC
  • Criar controlador
  • Executar controlador
  • Invocar ação
  • Executar resultado

13) O que é roteamento e três segmentos?

O roteamento ajuda você a decidir uma estrutura de URL e mapear a URL com o Controlador.

Os três segmentos importantes para o roteamento são:

  • NomeDoControlador
  • ActionMethodName
  • Parâmetro

14) Como é feito o roteamento no padrão MVC?

Existe um grupo de rotas denominado RouteCollection, que consiste em rotas cadastradas na aplicação. O método RegisterRoutes registra as rotas nesta coleção. Uma rota define um padrão de URL e um manipulador a ser usado se a solicitação corresponder ao padrão.

O primeiro parâmetro do método MapRoute é o nome da rota. O segundo parâmetro será o padrão ao qual o URL corresponde. O terceiro parâmetro poderá ser os valores padrão para os espaços reservados, se eles não forem determinados.


15) Como você pode navegar de uma visualização para outra usando um hiperlink?

Usando o método “ActionLink” conforme mostrado no código abaixo. O código abaixo formará uma URL simples que ajuda a navegar até o controlador “Home” e invocar a ação “GotoHome”.

Recolher/Copiar Código

<%= Html.ActionLink("Home", "Gotohome") %>

Perguntas e respostas da entrevista MVC para experientes

16) Como as sessões são mantidas no MVC?

As sessões podem ser mantidas no MVC de três maneiras: tempdata, viewdata e viewbag.


17) Qual é a diferença entre dados temporários, visualizar dados e visualizar bolsa?

  • Dados de temperatura: Ajuda a manter os dados quando você muda de um controlador para outro.
  • Ver dados: Ajuda a manter os dados quando você passa do controlador para a visualização.
  • Ver bolsa: É um wrapper dinâmico em torno dos dados de visualização.

18) O que é visão parcial em MVC?

A visualização parcial no MVC renderiza uma parte do conteúdo da visualização. É útil para reduzir a duplicação de código. Em termos simples, a vista parcial permite renderizar uma vista dentro da vista pai.


19) Como você pode implementar Ajax em MVC?

No MVC, o Ajax pode ser implementado de duas maneiras

  • Bibliotecas Ajax
  • Jquery

20) Qual a diferença entre “ActionResult” e “ViewResult”?

“ActionResult” é uma classe abstrata enquanto “ViewResult” é derivado da classe “AbstractResult”. “ActionResult” possui várias classes derivadas como “JsonResult”, “FileStreamResult” e “ViewResult”.

“ActionResult” é melhor se você estiver derivando diferentes tipos de visualizações dinamicamente.


21) Como enviar o resultado de volta no formato JSON no MVC?

Para enviar o resultado de volta no formato JSON em MVC, você pode usar a classe “JSONRESULT”.


22) Qual é a diferença entre Visualização e Visualização Parcial?

Aqui está a diferença entre Visualização e Visualização Parcial

Ver Vista Parcial
Ele contém a página de layout Não contém a página de layout
Antes de qualquer visualização ser renderizada, a página viewstart é renderizada A visualização parcial não verifica um viewstart.cshtml. Não podemos colocar código comum para uma visualização parcial em viewStart.cshtml.page
A visualização pode ter tags de marcação como body, html, head, title, meta etc. A visualização parcial é projetada especialmente para renderizar dentro da visualização, e só por isso não consiste em nenhuma marcação
A visualização não é leve em comparação com a visualização parcial Podemos passar uma visão regular para o método RenderPartial

23) Quais são os tipos de resultados no MVC?

No MVC, existem doze tipos de resultados em que a classe “ActionResult” é a classe principal enquanto os 11 são seus subtipos:

  • Visualizar resultado
  • Resultado parcial da visualização
  • ResultadoVazio
  • RedirectResult
  • RedirectToRouteResult
  • JsonResultName
  • JavaResultado do script
  • ContentResult
  • ArquivoContentResult
  • FileStreamResult
  • FilePathResult

24) Qual a importância do NonActionAttribute?

Todos os métodos públicos de uma classe de controlador são tratados como o método de ação. Se você quiser evitar esse método padrão, será necessário atribuir o método público com NonActionAttribute.


25) Qual é o uso da rota padrão {resource}.axd/{*pathinfo}?

A rota padrão evita que solicitações de um arquivo de recurso da Web, como Webresource.axd ou ScriptResource.axd, sejam transmitidas ao controlador.


26) Qual é a ordem dos filtros que são executados, se vários filtros forem implementados?

A ordem do filtro seria assim:

  • Filtros de autorização
  • Filtros de ação
  • Filtros de resposta
  • Filtros de exceção

27) Quais filtros ASP.NET são executados no final?

No final são executados “Filtros de Exceção”.


28) Quais são as extensões de arquivo para visualizações do Razor?

Para visualizações razor, as extensões de arquivo são

  • .cshtml: Se C# for a linguagem de programação
  • .vbhtml: Se VB for a linguagem de programação

29) Quais são as duas maneiras de adicionar restrições a uma rota?

Dois métodos para adicionar restrições à rota são:

  • Usando expressões regulares
  • Usando um objeto que implementa a interface IRouteConstraint

30) Quais são os dois casos em que o roteamento não é implementado ou obrigatório?

Duas instâncias em que o roteamento não é necessário são

  • Quando é encontrado um arquivo físico que corresponde ao padrão de URL
  • Quando o roteamento está desabilitado para um padrão de URL

Perguntas da entrevista MVC para 5 anos de experiência

31) Quais são as funcionalidades do MVC?

Aqui estão os recursos do MVC:

  • Testabilidade fácil e sem atrito. Estrutura altamente testável, extensível e conectável.
  • Oferece controle total sobre seu HTML e também sobre seus URLs
  • Aproveita os recursos existentes fornecidos por ASP.NET, JSP, Django, etc.
  • Separação clara de lógica: Modelo, Visualização, Controlador. Separação de tarefas do aplicativo por meio de lógica de negócios, lógica Ul e lógica de entrada.
  • Roteamento de URL para URLs amigáveis ​​para SEO. Mapeamento de URL poderoso para URLs compreensíveis e pesquisáveis.
  • Suporte para Desenvolvimento Orientado a Testes (TDD).

32) Quais são os exemplos reais de MVC?

Aqui está um exemplo real de MVC:

  • Vamos supor que você vá a um restaurante. Você não irá para a cozinha preparar comida, o que certamente poderá fazer em sua casa. Em vez disso, basta ir até lá e esperar o garçom chegar.
  • Agora o garçom vem até você e você pede a comida. O garçom não sabe quem você é e o que você quer, ele apenas anotou os detalhes do seu pedido de comida.
  • Em seguida, o garçom segue para a cozinha. Na cozinha, o garçom não prepara a comida.
  • O cozinheiro prepara sua comida. O garçom recebe seu pedido junto com o número da mesa.
  • Cook então prepara comida para você. Ele usa ingredientes para cozinhar a comida. Vamos supor que você pediu um sanduíche de legumes. Então ele precisa de pão, tomate, batata, pimentão, cebola, pedaço, queijo, etc., que vem da geladeira
  • Cook finalmente entrega a comida ao garçom. Agora é função do garçom levar a comida para fora da cozinha.
  • Agora o garçom sabe qual comida você pediu e como ela é servida.

Neste caso,

View= You
Waiter= Controller
Cook= Model
Refrigerator= Data

33) Qual é a diferença entre 3 níveis Archiarquitetura e MVC Archiarquitetura?

Aqui está uma diferença entre 3 níveis Archiarquitetura e MVC Architextura:

Parâmetro 3-Tier Archiarquitetura MVC Archiarquitetura
Comunicação Este tipo de padrão de arquitetura nunca se comunica diretamente com a camada de dados. Todas as camadas se comunicam diretamente usando a topologia triangular.
Uso 3 camadas: amplamente utilizado em aplicações web onde o cliente, as camadas de dados e o middleware são executados em plataformas fisicamente separadas. Geralmente usado em aplicativos executados em uma única estação de trabalho gráfica.

34) Como você pode usar a arquitetura MVC em JSP?

O exemplo a seguir mostra o uso da arquitetura MVC em JSP:

  • Estamos pegando o exemplo de um formulário com duas variáveis, “e-mail” e “senha”, que é nossa camada de visualização.
  • Depois que o usuário insere o e-mail e a senha e clica em enviar, a ação é passada em mvc_servlet onde o e-mail e a senha são passados.
  • Este mvc_servlet é a camada controladora. Aqui no mvc_servlet, a solicitação é enviada para o objeto bean, que atua como uma camada de modelo.
  • Os valores de e-mail e senha são definidos no bean e armazenados para outros fins.
  • Do bean, o valor é obtido e mostrado na camada de visualização.

Mvc_example.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>MVC Guru Example</title>
</head>
<body>
<form action="Mvc_servlet" method="POST">
Email: <input type="text" name="email">
<br />
Password: <input type="text" name="password" />
<input type="submit" value="Submit" />
</form>
</body>
</html>

Mvc_servlet.java

package demotest;
  
import java.io.IOException;
  
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
  
/**
 * Servlet implementation class Mvc_servlet
 */
public class Mvc_servlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
        
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Mvc_servlet() {
        super();
        // TODO Auto-generated constructor stub
    }
  
  
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        String email=request.getParameter("email");  
        String password=request.getParameter("password");
         
        TestBean testobj = new TestBean();
        testobj.setEmail(email);
        testobj.setPassword(password);
        request.setAttribute("gurubean",testobj);
        RequestDispatcher rd=request.getRequestDispatcher("mvc_success.jsp");  
        rd.forward(request, response); 
    }
  
}

TestBean.java

package demotest;
  
import java.io.Serializable;
  
public class TestBean implements Serializable{
    
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    private String email="null";
    private String password="null";
}

Mvc_success.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <%@page import="demotest.TestBean"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Success</title>
</head>
<body>
<%  
TestBean testguru=(TestBean)request.getAttribute("gurubean");  
out.print("Welcome, "+testguru.getEmail());  
%>
</body>
</html>

35) Como funciona o MVC no Spring?

Aqui está como o MVC funciona no Spring:

  • DispatcherServlet recebe uma solicitação.
  • Depois disso, o DispatcherServlet se comunica com o HandlerMapping. Também revoga o controlador associado a essa solicitação específica.
  • O Controller processa essa solicitação chamando os métodos de serviço, e um objeto ModelAndView é retornado pelo DispatcherServlet.
  • O nome da visualização é enviado a um ViewResolver para localizar a visualização real a ser invocada.
  • Depois disso, DispatcherServlet é passado para View para renderizar o resultado.
  • Ao usar os dados do modelo, a View renderiza e envia o resultado ao usuário.

36) Quais são os pontos importantes a serem lembrados ao criar um aplicativo MVC?

Aqui estão alguns pontos importantes a serem lembrados ao criar um aplicativo MVC:

  • Você precisa lembrar que o ASP.net MVC não é um substituto para aplicativos baseados em formulários da web ASP.Net
  • A abordagem de desenvolvimento de aplicativos MVC deve ser decidida com base nos requisitos e recursos do aplicativo fornecidos pelo ASP.net MVC para atender às necessidades específicas de desenvolvimento.
  • O processo de desenvolvimento de aplicativos com ASP.NET MVC é mais complexo em comparação com aplicativos baseados em formulários da web.
  • A capacidade de manutenção do aplicativo é sempre maior com a separação das tarefas do aplicativo.

37) Qual a diferença entre Web Forms e MVC?

Aqui está uma diferença entre Web Forms e MVC:

parâmetros web Forms MVC
Modelo Os Formulários Web Asp.Net seguem o modelo de desenvolvimento orientado a eventos. Asp.Net MVC usa modelo de desenvolvimento baseado em padrões MVC.
Usado desde Existe desde 2002 Foi lançado pela primeira vez em 2009
Suporte para estado de visualização Asp.Net Web Forms suporta visualização de estado para gerenciamento de estado no lado do cliente. .Net MVC não suporta estado de visualização.
Tipo de URL Asp.Net Web Forms possui URLs baseados em arquivos. Isso significa que o nome do arquivo existe nos URLs e eles devem existir fisicamente. O Asp.Net MVC possui URLs baseados em rotas, o que significa que os URLs são redirecionados para controladores e ações.
Sintaxe Asp.Net MVC segue a sintaxe de formulários da Web. Asp.Net MVC segue a sintaxe personalizável.
Tipo de vista As visualizações de Web Forms são fortemente acopladas ao Code Behind (ASPX-CS), ou seja, à lógica. As visualizações e a lógica do MVC são sempre mantidas separadamente.
Aparência consistente Possui páginas mestras para uma aparência consistente. O Asp.Net MVC possui layouts para uma aparência consistente.
Reutilização de código Web Forms oferece controles de usuário para reutilização de código. Asp.Net MVC oferece visualizações parciais para reutilização de código.
Controle para HTML Less controle sobre HTML renderizado. Controle total sobre HTML
Gestão do estado Gerenciamento automático de estado de controles. Gerenciamento manual de estado.
Suporte TDD É necessário um TDD fraco ou personalizado. Incentiva e inclui TDD!

38) Como você pode exibir algo no CodeIgniter?

Aqui está um código para exibir algo no CodeIgniter:

<?=$title?>
As opposed to
<?php
echo $title;
?>
Control structures are usually written as follows
<?php foreach ($customers as $customer): ?>
<li>
<p><?=$customer->first_name?><p>
</li>
<?php endforeach; ?>

39) Escreva um código para demonstrar Modelo, Visualização e Controlador no CodeIgniter.

Aqui está um código para demonstrar Model, View e Controller no CodeIgniter:

Abra o arquivo Welcome.php controller localizado em application/controllers:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {
    public function index()
    {
        $this->load->view('welcome_message');
    }
}

Atualize o índice da seguinte maneira:

public function index()
    {
            $this->load->model('customers_model');

            $data['customer'] = $this->customers_model->get_customer(3);

            $this->load->view('welcome_message',$data);
    }

Escreva o seguinte código em customer_model.php em application/models.

<?php
class Customers_model extends CI_Model {
    public function get_customer($id) {
        $data['id'] = 3;
        $data['first_name'] = 'John';
        $data['last_name'] = 'Doe';
        $data['address'] = 'Kingstone';

        return $data;
    }
}

Abra Welcome_message.php localizado em

application/views/welcome_message.php

Substitua o código pelo seguinte

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>CodeIgniter MVC Basics</title>
</head>
<body>
    <h3>Customer Details Card</h3>

    <p>Customer ID : <strong><?=$customer['id']?></strong></p>
    <p>First Name  : <strong><?=$customer['first_name']?></strong></p>
    <p>Last Name   : <strong><?=$customer['last_name']?></strong></p>
    <p>Address     : <strong><?=$customer['address']?></strong></p>
</body>
</html>

40) Você pode criar um aplicativo web com webforms e MVC?

Sim. Você precisa incluir as referências de assembly MVC abaixo no aplicativo de formulários da web para criar um aplicativo híbrido.

System.Web.Mvc
System.Web.Razor
System.ComponentModel.DataAnnotations

41) Como você pode atribuir um nome alternativo para ASP.NET Web API Action?

Podemos fornecer um nome alternativo para a ação da API da Web da mesma forma que no caso do ASP.NET MVC usando o atributo “ActionName” da seguinte forma:

[HttpPost]

[ActionName("SaveStudentInfo")]

public void UpdateStudent(Student aStudent)
{
StudentRepository.AddStudent(aStudent);
}

42) Qual a principal diferença entre MVC e WebAPI?

Aqui está a principal diferença entre MVC e WebAPI:

A estrutura MVC é usada para desenvolver aplicativos que possuem uma interface de usuário. Para isso, visualizações podem ser usadas para construir uma interface de usuário.

WebAPI é usado para desenvolver serviços HTTP. Outros aplicativos também podem ser chamados de métodos WebAPI para buscar esses dados.


43) Como você pode garantir que a API da Web retorne apenas dados JSON?

Para fazer com que a API da Web serialize o objeto retornado para o formato JSON e retorne apenas dados JSON. Para isso, você deve adicionar o seguinte código na classe WebApiConfig.cs em qualquer projeto MVC Web API:

//JsonFormatter

//MediaTypeHeaderValue

Config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));

1
2
3

//JsonFormatter

//MediaTypeHeaderValue

Config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"))

44) Qual a diferença entre MVVM e MVC?

Aqui estão as diferenças importantes entre MVVM e MVC:

MVC MVVM
Um Controlador é o ponto de entrada para o Aplicativo. A Visualização é o ponto de entrada para o Aplicativo.
Relacionamentos um para muitos entre Controller e View. Relacionamentos um para muitos entre Visualização e Modelo de Visualização.
View não tem referência ao Controller View tem referências ao View-Model.
MVC é modelo antigo MVVM é um modelo relativamente novo.
Difícil de ler, alterar, testar unidade e reutilizar este modelo O processo de depuração será complicado quando tivermos ligações de dados complexas.
O componente do modelo MVC pode ser testado separadamente do usuário Fácil para testes unitários separados e o código é orientado a eventos.

45) O que é MVC em AngularJS?

Angular.js segue a arquitetura MVC, o diagrama da estrutura MVC é mostrado abaixo.

  • O Controlador representa a camada que contém a lógica de negócio. Os eventos do usuário acionam as funções armazenadas dentro do seu controlador. Os eventos do usuário fazem parte do controlador.
  • As visualizações são usadas para representar a camada de apresentação que é fornecida aos usuários finais.
  • Modelos são usados ​​para representar seus dados. Os dados em seu modelo podem ser tão simples quanto ter declarações primitivas. Por exemplo, se você estiver mantendo um aplicativo de estudante, seu modelo de dados poderá ter apenas uma identificação de estudante e um nome. Ou também pode ser complexo por ter um modelo de dados estruturado. Se você estiver mantendo um pedido de propriedade de carro, poderá ter estruturas para definir o próprio veículo em termos de cilindrada, capacidade de assentos, etc.

46) Qual é o papel do MVC no AngularJS?

A seguir está uma definição simples do funcionamento do Controlador AngularJS.

  • A principal responsabilidade do controlador é controlar os dados que são passados ​​para a visualização. O escopo e a visão têm comunicação bidirecional.
  • As propriedades da visualização podem chamar “funções” no escopo. Além disso, os eventos na visão podem chamar “métodos” no escopo. O trecho de código abaixo fornece um exemplo simples de função.
    • A função ($scope) que é definida ao definir o controlador e uma função interna que é usada para retornar a concatenação de $scope.firstName e $scope.lastName.
    • No AngularJS, quando você define uma função como uma variável, ela é conhecida como Método.

  • Dessa forma, os dados passam do controlador para o escopo e, em seguida, passam do escopo para a visualização.
  • O escopo é usado para expor o modelo à visualização. O modelo pode ser modificado por meio de métodos definidos no escopo, que podem ser acionados por meio de eventos da visualização. Podemos definir a ligação de modelo bidirecional do escopo ao modelo.
  • Idealmente, os controladores não devem ser usados ​​para manipular o DOM. Isto deveria ser feito pelas directivas, que veremos mais tarde.
  • A melhor prática é ter controladores baseados na funcionalidade. Por exemplo, se você possui um formulário para entrada e precisa de um controlador para isso, crie um controlador chamado “controlador de formulário”.

47) Como construir um controlador básico em AngularJS

O trecho de código abaixo é uma página HTML simples que tem o título “Registro de Evento” e faz referências a bibliotecas importantes, como Bootstrap, jquery e Angular.

  1. Estamos adicionando referências às folhas de estilo CSS do bootstrap, que serão usadas em conjunto com as bibliotecas do bootstrap.
  2. Estamos adicionando referências às bibliotecas AngularJS. Então agora, tudo o que fizermos com angular.js daqui para frente será referenciado nesta biblioteca.
  3. Estamos adicionando referências à biblioteca bootstrap para tornar nossa página web mais responsiva para determinados controles.
  4. Adicionamos referências às bibliotecas jquery que serão usadas para manipulação de DOM. Isso é exigido pelo Angular porque algumas das funcionalidades do Angular dependem desta biblioteca.

Por padrão, o trecho de código acima estará presente em todos os nossos exemplos para que possamos mostrar apenas o código angularJS específico nas seções subsequentes.

Em segundo lugar, vamos dar uma olhada em nossos arquivos e na estrutura de arquivos que iniciaremos em nosso curso:

  1. Primeiro, separamos nossos arquivos em 2 pastas, como é feito com qualquer aplicativo web convencional. Temos a pasta “CSS”. Ele conterá todos os nossos arquivos de folhas de estilos em cascata, e então teremos nossa pasta “lib”, que terá todos os nossos JavaScript arquivos.
  2. O arquivo bootstrap.css é colocado na pasta CSS e é usado para adicionar uma boa aparência ao nosso site.
  3. O angular.js é nosso arquivo principal que foi baixado do site angularJS e mantido em nossa pasta lib.
  4. O arquivo app.js conterá nosso código para os controladores.
  5. O arquivo bootstrap.js é usado para complementar o arquivo bootstrap.cs para adicionar funcionalidade de bootstrap ao nosso aplicativo da web.
  6. O arquivo jquery será usado para adicionar funcionalidade de manipulação de DOM ao nosso site.

Exemplo de uso de angular.js:

O que queremos fazer aqui é apenas exibir as palavras “AngularJS” tanto em formato de texto quanto em uma caixa de texto quando a página for visualizada no navegador.

<!DOCTYPE html>
<html>
<head>
    <meta chrset="UTF 8">
    <link rel="stylesheet" href="css/bootstrap.css"/>
</head>
<body>
<h3> Guru99 Global Event</h3>
<script src="https://code.angularjs.org/1.6.9/angular.js"></script>
<script src="lib/angular.js"></script>
<script src="lib/bootstrap.js"></script>
<script src="lib/jquery-1.11.3.min.js"></script>

<div ng-app="DemoApp" ng-controller="DemoController">

    Tutorial Name : <input type="text" ng-model="tutorialName"><br>

    This tutorial is {{tutorialName}}
</div>
<script>
    var app = angular.module('DemoApp',[]);

    app.controller('DemoController', function($scope){
    $scope.tutorialName = "Angular JS";
    });
</script>

</body>
</html>

48) Qual a utilidade do ng-controller em arquivos externos em AngularJS

Execute as seguintes etapas para usar o ng-controller em arquivos externos em AngularJS

Passo 1) No arquivo app.js, adicione o seguinte código para seu controlador

angular.module('app',[]).controller('HelloWorldCtrl',function($scope)
{
    $scope.message = "Hello World"
});

Passo 2) Agora, em seu arquivo Sample.html, adicione uma classe div que conterá a diretiva ng-controller e, em seguida, adicione uma referência à variável de membro “message”.

<!DOCTYPE html>
<html ng-app="app">
<head>
    <meta chrset="UTF 8">
    <title>Event Registration</title>
    <link rel="stylesheet" href="css/bootstrap.css"/>
</head>
<body>
<h3> Guru99 Global Event</h3>
<div class="container">
    <div ng-controller="HelloWorldCtrl">{{message}}</div>
</div>

<script src="https://code.angularjs.org/1.6.9/angular.js"></script>
<script src="lib/angular.js"></script>
<script src="lib/bootstrap.js"></script>
<script src="lib/jquery-1.11.3.min.js"></script>

<script src="app.js"></script>

</body>
</html>

49) Escrever código para definir métodos no controlador AngularJS?

Aqui está um código para definir métodos no controlador AngularJS:

<!DOCTYPE html>
<html>
<head>
    <meta chrset="UTF 8">
    <title>Event Registration</title>
    <link rel="stylesheet" href="css/bootstrap.css"/>
</head>
<body ng-app="DemoApp">
<h3> Guru99 Global Event</h3>
<script src="https://code.angularjs.org/1.6.9/angular.js"></script>
<script src="lib/angular.js"></script>
<script src="lib/bootstrap.js"></script>
<script src="lib/jquery-1.11.3.min.js"></script>

<div ng-app="DemoApp" ng-controller="DemoController">
    Tutorial Name :<input type="text" ng-model="tutorialName"><br>
    <br>
    This tutorial is {{tutorialName}}    
</div>

<script>
var app = angular.module('DemoApp', []);
app.controller('DemoController', function($scope) {
    $scope.tutorialName = "Angular JS";
    $scope.tName = function() {
        return $scope.tName;
    };
});
</script>    
</body>
</html>

50) Escreva código usando o modelo ng para exibir o controle de entrada multilinha em AngularJS.

Aqui está um código usando ng-model para exibir o controle de entrada multilinha em AngularJS:

<!DOCTYPE html>
<html>
<head>
    <meta chrset="UTF 8">
    <title>Event Registration</title>
    <link rel="stylesheet" href="css/bootstrap.css"/>
</head>
<body >
<h3> Guru99 Global Event</h3>
<script src="https://code.angularjs.org/1.6.9/angular.js"></script>

<div ng-app="DemoApp" ng-controller="DemoCtrl">
    <form>
        &nbsp;&nbsp;&nbsp;Topic Description:<br> <br>
        &nbsp;&nbsp;&nbsp;
    <textarea rows="4" cols="50" ng-model="pDescription"></textarea><br><br> 
    </form>
</div>

<script>
    var app = angular.module('DemoApp',[]);
    app.controller('DemoCtrl', function($scope){
        $scope.pDescription="This topic looks at how Angular JS works \nModels in Angular JS"});
</script>

</body>
</html>

51) Escreva código para demonstrar o uso de elementos de entrada.

Aqui está um exemplo de código usando elementos de entrada AngulaJS:

<!DOCTYPE html>
<html>
<head>
    <meta chrset="UTF 8">
    <title>Event Registration</title>
    <link rel="stylesheet" href="css/bootstrap.css"/>
    <script src="https://code.angularjs.org/1.6.9/angular.js"></script>
</head>
<body >
<h3> Guru99 Global Event</h3>

<div ng-app="DemoApp" ng-controller="DemoCtrl">
    <form>
        &nbsp;&nbsp;&nbsp;Topic Description:<br> <br>
        &nbsp;&nbsp;&nbsp;
         
        Name : <input type="text" ng-model="pname"><br>
        &nbsp;&nbsp;&nbsp;
        Topic : <br>&nbsp;&nbsp;&nbsp;
        <input type="checkbox" ng-model="Topic.Controller">Controller<br>&nbsp;&nbsp;&nbsp;
        <input type="checkbox" ng-model="Topic.Models">Models
    </form>
    </div>

<script>
    var app = angular.module('DemoApp',[]);
    app.controller('DemoCtrl', function($scope){
        $scope.pname="Guru99";
         
        $scope.Topic =
        {
            Controller:true,
            Models:false
        };     });
</script>

</body>
</html>

52) Como você pode criar um modelo em PHP?

Aqui está um código para criar modelo em PHP:

<?php 
class Opinion_poll_model extends CI_Model 
{ 
    public function __construct() 
    { 
        $this->load->database(); 
    } 

    public function total_votes() 
    { 
        $query = $this->db->select('COUNT(choice) as choices_count')->get('js_libraries');
        return $query->row()->choices_count; 
    } 

    public function get_results() 
    { 
        $libraries = array("", "JQuery", "MooTools", "YUI Library", "Glow"); 
        $table_rows = ''; 

        for ($i = 1; $i < 5; $i++) 
        {
             $sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries WHERE choice = $i;"; 
             $result = $model->

             select($sql_stmt); $table_rows .= "<tr><td>" . $ libraries [$i] . " Got:</td><td><b>" . $result[0] . "</b> votes</td></tr>"; 
        } 
        public function add_vote($choice) 
        { 
            $ts = date("Y-m-d H:i:s"); $data = array('choice' => $choice, 'ts' => $ts); $this->db->insert('js_libraries', $data); 
        } 
   } 
?>

53) Por que usar PHP MVC Framework?

Você deve usar o PHP MVC Framework porque ele simplifica o trabalho com tecnologias complexas ao:

  • Escondendo todos os detalhes complexos de implementação
  • Fornecendo métodos padrão que podemos usar para construir nossos aplicativos.
  • Aumento da produtividade do desenvolvedor, isso ocorre porque a implementação básica de atividades como conexão ao banco de dados, higienização de entrada do usuário, etc., já estão parcialmente implementadas.
  • Adesão aos padrões de codificação profissionais

54) Quais são os frameworks PHP MVC populares?

Aqui estão estruturas PHP MVC populares:

Code Igniter: É uma das estruturas PHP MVC mais populares. É leve e tem uma curva de aprendizado curta. Possui um rico conjunto de bibliotecas que ajudam a construir sites e aplicativos rapidamente. Usuários com conhecimento limitado de programação OOP também podem utilizá-lo.

Kohana: É um controlador de visualização de modelo hierárquico HMVC que é uma estrutura leve e segura. Possui um rico conjunto de componentes para desenvolver aplicativos rapidamente.

BoloPHP: Ele é modelado após Ruby on Rails. É conhecido por conceitos como padrões de design de software, convenção sobre configuração, ActiveRecord, etc.

Zend: É uma estrutura poderosa;

  • Seguro, confiável, rápido e escalável
  • Suporta Web 2.0 e criação de serviços web.

Possui APIs de fornecedores como AmazonGoogle Flickr, Yahoo, etc. É ideal para desenvolver aplicativos de negócios.


55) Como você pode criar visualizações em PHP?

Aqui está um código para criar visualizações em PHP:

opinion_poll_form.php 
<html>
<head>
    <title>
        JavaScript Libraries - Opinion Poll
    </title>
</head>

<body>
    <h3>JavaScript Libraries - Opinion Poll</h3>
    <p><b>What is your favorite JavaScript Library? </b></p>
    <form method="POST" action="index.php">
        <p>
            <input type="radio" name="vote" value="1" /> JQuery
            <br />
            <input type="radio" name="vote" value="2" /> MooTools
            <br />
            <input type="radio" name="vote" value="3" /> YUI Library
            <br />
            <input type="radio" name="vote" value="4" /> Glow </p>
        <p>
            <input type="submit" name="submitbutton" value="OK" />
        </p>
    </form>
</body>
</html>

Vamos agora criar a página de resultados results.php

<html>
    <head>
        <title>JavaScript Libraries - Opinion Poll Results</title>
    </head>
    <body>

        <h3>JavaScript Libraries - Opinion Poll Results</h3>

        <p><b>What is your favorite JavaScript Library?</b></p>

        <p><b><?php echo $total_votes; ?></b> people have thus far taken part in this poll:</p>

        <p><table><tr><td>

            <?php print($rows); ?>

        </tr></td></table></p>

        <p><a href="#">Return to voting page</a></p>
</body>
</html>

Essas perguntas da entrevista também ajudarão em sua viva (oral)