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.
  • Consultarโ€“ 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

O mรฉtodo da 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

Consultar 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 Tรฉcnicos 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)

Resuma esta postagem com: