55 parimat MVC intervjuu küsimust ja vastust (PDF)

Siin on MVC intervjuu küsimused nii värskematele kui ka kogenud kandidaatidele, et saada oma unistuste töökoht.

 

MVC intervjuu küsimused ja vastused värsketele õpilastele

1) Mis on Model-View-Controller?

MVC on tarkvaraarhitektuuri muster veebirakenduste arendamiseks. Seda haldavad kolm objekti: mudel, vaade ja kontroller.

👉 Tasuta PDF-i allalaadimine: MVC intervjuu küsimused ja vastused


2) Mida esindab Model-View-Controller MVC rakenduses?

MVC mudelis

  • MUDEL– See esindab rakenduse andmete domeeni. Teisisõnu, rakenduse äriloogika sisaldub mudelis ja vastutab andmete säilitamise eest.
  • vaade– See esindab kasutajaliidest, millega lõppkasutajad suhtlevad. Lühidalt, kogu kasutajaliidese loogika sisaldub vaates.
  • Kontroller- See on kontroller, mis vastab kasutaja tegevusele. Vastavalt kasutaja tegevustele reageerib vastav kontroller mudeli sees ja valib renderdamiseks vaate, mis kuvab kasutajaliidese. Kasutaja sisestusloogika sisaldub kontrolleris.

3) MVC määratlemiseks nimetage koost

. MVC raamistik on määratletud System.Web.Mvc koostis.


4) Millised on kontrolleri tegevusmeetodi erinevad tagastustüübid?

Siin on kontrolleri toimingumeetodi erinevad tagastustüübid.

  • Kuva tulemus
  • JavaSkripti tulemus
  • Ümbersuunamise tulemus
  • JSON-i tulemus
  • Sisu tulemus

5) Mis vahe on marsruutide lisamisel veebivormirakendusse ja MVC-rakendusse?

Veebivormirakendusse marsruutide lisamiseks kasutame klassi RouteCollection meetodit MapPageRoute(), MVC rakendusse marsruutide lisamiseks aga MapRoute() meetodit.


6) Millised on kaks võimalust marsruudile piirangute lisamiseks?

Marsruudile piirangute lisamiseks on kaks meetodit

  • Kasutage regulaaravaldisi
  • Kasutage objekti, mis rakendab IRouteConstraint Interface'i

7) Millised on MVC eelised?

  • MVC eraldab teie projekti teise segmenti ja arendajatel on selle kallal lihtne töötada
  • Mõnda projekti osa on lihtne redigeerida või muuta, mis toob kasu projekti väiksemate arendus- ja hoolduskuludega
  • MVC muudab teie projekti süstemaatilisemaks
  • See kujutab äriloogika ja esitlusloogika selget eraldamist
  • Igal MVC objektil on erinevad kohustused
  • Areng edeneb paralleelselt
  • Lihtne hallata ja hooldada
  • Kõik klassid ja objektid on üksteisest sõltumatud

8) Mida teevad funktsioonid "beforeFilter()", "beforeRender" ja "afterFilter" kontrolleris?

  • beforeFilter(): See funktsioon töötab enne iga kontrolleri toimingut. See on õige koht aktiivse seansi kontrollimiseks või kasutajaõiguste kontrollimiseks.
  • beforeRender(): Seda funktsiooni kutsutakse pärast kontrolleri tegevusloogikat, kuid enne vaate renderdamist. Seda funktsiooni ei kasutata sageli, kuid see võib olla vajalik, kui kutsute render() käsitsi enne teatud toimingu lõppu.
  • afterFilter(): Seda funktsiooni kutsutakse välja pärast iga kontrolleri toimingut ja pärast renderdamist. See on viimane kontrolleri meetod, mida käivitada.

9) Milline on esitlemise, abstraktsiooni ja kontrolli komponentide roll MVC-s?

Siin on komponentide esitus, abstraktsioon ja juhtimine MVC-s:

  • Ettekanne: See on konkreetse abstraktsiooni visuaalne esitus rakenduses
  • Abstraktsioon: See on rakenduse ärivaldkonna funktsioon
  • Kontroll: See on komponent, mis hoiab kooskõla süsteemisiseste abstraktsioonide ja nende kasutajale esitamise vahel, lisaks suhtlemisele süsteemi muude juhtelementidega

10) Millised on MVC mudeli puudused?

Siin on mõned MVC mudeli olulised puudused:

  • Mudeli muster on veidi keeruline.
  • Silmas on andmetele juurdepääsu ebaefektiivsus.
  • Kaasaegse kasutajaliidese korral on MVC kasutamine keeruline.
  • Paralleelseks arendamiseks on vaja mitut programmeerijat.
  • Vaja on mitmeid tehnoloogiaalaseid teadmisi.

11) Milline on ActionFiltrite roll MVC-s?

MVC-s aitavad "ActionFilters" teil loogikat täita, kui MVC toiming täidetakse või seda täidetakse.


12) Millised on MVC projekti elluviimise sammud?

MVC projekti elluviimise etapid hõlmavad järgmist:

  • Saate esimese taotluse taotluse
  • Tehke marsruutimine
  • Looge MVC päringu töötleja
  • Loo kontroller
  • Käivitage kontroller
  • Kutsuge tegevust
  • Käivitage tulemus

13) Mis on marsruutimine ja kolm segmenti?

Marsruutimine aitab teil otsustada URL-i struktuuri üle ja kaardistada URL-i kontrolleriga.

Marsruutimise jaoks on olulised kolm segmenti:

  • Kontrolleri nimi
  • ActionMethodName
  • Parameeter

14) Kuidas toimub marsruutimine MVC mustris?

Seal on marsruutide rühm nimega RouteCollection, mis koosneb rakenduses registreeritud marsruutidest. Meetod RegisterRoutes salvestab marsruudid sellesse kogusse. Marsruut määrab URL-i mustri ja töötleja, mida kasutatakse juhul, kui päring vastab mustrile.

Meetodi MapRoute esimene parameeter on marsruudi nimi. Teine parameeter on muster, millele URL sobib. Kolmas parameeter võib olla kohahoidjate vaikeväärtused, kui neid ei määrata.


15) Kuidas saate hüperlingi abil liikuda ühest vaatest teise?

Kasutades "ActionLink" meetodit, nagu on näidatud allolevas koodis. Allpool olev kood loob lihtsa URL-i, mis aitab navigeerida kontrollerile "Kodu" ja käivitada toimingu "GotoHome".

Ahenda/kopeeri kood

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

MVC intervjuu küsimused ja vastused kogenud inimestele

16) Kuidas MVC-s seansse hoitakse?

Seansse saab MVC-s säilitada kolmel viisil: tempdata, viewdata ja viewbag.


17) Mis vahe on Temp data, View data ja View Bag vahel?

  • Temperatuuri andmed: See aitab andmeid säilitada, kui vahetate ühelt kontrollerilt teisele.
  • Kuva andmed: See aitab andmeid säilitada, kui liigute kontrollerilt vaatele.
  • Vaata kotti: See on vaateandmete dünaamiline mähis.

18) Mis on MVC osaline vaade?

Osaline vaade MVC-s renderdab osa vaatamise sisust. See aitab vähendada koodi dubleerimist. Lihtsamalt öeldes võimaldab osavaade renderdada vaadet põhivaates.


19) Kuidas saate Ajaxi MVC-s rakendada?

MVC-s saab Ajaxit rakendada kahel viisil

  • Ajaxi raamatukogud
  • jquery

20) Mis vahe on "ActionResult" ja "ViewResult" vahel?

"ActionResult" on abstraktne klass, samas kui "ViewResult" on tuletatud klassist "AbstractResult". "ActionResult" sisaldab mitmeid tuletatud klasse, nagu "JsonResult", "FileStreamResult" ja "ViewResult".

„ActionResult” on parim, kui tuletate dünaamiliselt erinevat tüüpi vaateid.


21) Kuidas saate tulemuse MVC-s JSON-vormingus tagasi saata?

Tulemuse MVC-s JSON-vormingus tagasi saatmiseks saate kasutada klassi “JSONRESULT”.


22) Mis vahe on vaatel ja osalisel vaatel?

Siin on erinevus vaate ja osalise vaate vahel

vaade Osaline vaade
See sisaldab paigutuslehte See ei sisalda paigutuslehte
Enne mis tahes vaate renderdamist renderdatakse vaadete algusleht Osalist vaadet ei kontrollita faili viewstart.cshtml puhul. Me ei saa lehel viewStart.cshtml.lehe osalise vaate jaoks ühist koodi panna
Vaatel võivad olla märgistussildid, nagu body, html, head, title, meta jne. Osaline vaade on loodud spetsiaalselt vaate sees renderdamiseks ja just seetõttu ei sisalda see mingit märgistust
Vaade pole osalise vaatega võrreldes kergekaaluline Tavavaate saame edastada meetodile RenderPartial

23) Mis tüüpi tulemused on MVC-s?

MVC-s on kaksteist tüüpi tulemusi, mille põhiklass on „ActionResult” klass, samas kui 11 on nende alamtüüp:

  • Vaata tulemust
  • Osaline vaatamise tulemus
  • TühiTulemus
  • RedirectResult
  • RedirectToRouteResult
  • JsonResult
  • JavaScriptResult
  • Sisu Tulemus
  • FileContentResult
  • FileStreamResult
  • FilePathResult

24) Mis on atribuudi NonActionAttribute tähtsus?

Kõiki kontrolleriklassi avalikke meetodeid käsitletakse tegevusmeetodina, kui soovite seda vaikemeetodit takistada, siis peate määrama avaliku meetodi atribuudiga NonActionAttribute.


25) Milleks on vaikemarsruudi {resource}.axd/{*pathinfo} kasu?

Vaikimisi marsruut takistab veebiressursifaili (nt Webresource.axd või ScriptResource.axd) taotluste edastamist kontrollerile.


26) Milline on käivitatavate filtrite järjekord, kui rakendatakse mitut filtrit?

Filtrite järjekord oleks järgmine:

  • Autoriseerimisfiltrid
  • Tegevusfiltrid
  • Vastuste filtrid
  • Erandfiltrid

27) Millised ASP.NET filtrid lõpuks käivitatakse?

Lõpuks käivitatakse "Erandfiltrid".


28) Millised on pardlivaadete faililaiendid?

Pardlivaadete jaoks on faililaiendid

  • .cshtml: kui programmeerimiskeel on C#
  • .vbhtml: kui programmeerimiskeel on VB

29) Millised on kaks võimalust marsruudile piirangute lisamiseks?

Marsruudile piirangute lisamiseks on kaks meetodit:

  • Regulaaravaldiste kasutamine
  • Kasutades objekti, mis rakendab IRouteConstraint liidest

30) Millised on kaks juhtumit, kus marsruutimist ei rakendata või seda ei nõuta?

Kaks juhtumit, kus marsruutimine pole vajalik, on

  • Kui leitakse füüsiline fail, mis vastab URL-i mustrile
  • Kui URL-i mustri jaoks on marsruutimine keelatud

MVC intervjuuküsimused 5-aastase kogemuse kohta

31) Millised on MVC omadused?

Siin on MVC funktsioonid:

  • Lihtne ja hõõrdumatu testitavus. Väga testitav, laiendatav ja ühendatav raamistik.
  • Pakub täielikku kontrolli nii teie HTML-i kui ka URL-ide üle
  • Kasutab olemasolevaid funktsioone, mida pakuvad ASP.NET, JSP, Django jne.
  • Loogika selge eraldamine: mudel, vaade, kontroller. Rakenduse ülesannete eraldamine äriloogika, Ul-loogika ja sisendloogika kaudu.
  • URL-i marsruutimine SEO-sõbralike URL-ide jaoks. Võimas URL-i kaardistamine arusaadavate ja otsitavate URL-ide jaoks.
  • Testipõhise arenduse (TDD) tugi.

32) Mis on MVC näide tegelikust elust?

Siin on MVC näide päriselust:

  • Oletame, et lähete restorani. Te ei lähe kööki ja ei valmista toitu, mida saate kindlasti oma kodus teha. Selle asemel lähete lihtsalt kohale ja ootate, kuni kelner tuleb.
  • Nüüd tuleb kelner teie juurde ja te lihtsalt tellite toidu. Kelner ei tea, kes sa oled ja mida sa tahad, ta lihtsalt kirjutas üles sinu toidutellimuse üksikasjad.
  • Seejärel liigub kelner kööki. Köögis kelner sulle süüa ei valmista.
  • Kokk valmistab sulle toidu. Kelnerile antakse teie tellimus koos teie laua numbriga.
  • Seejärel valmistab Cook teile toidu. Ta kasutab toidu valmistamiseks koostisosi. Oletame, et tellisite köögiviljavõileiva. Siis vajab ta leiba, tomatit, kartulit, paprikat, sibulat, bitti, juustu jne, mille allikad külmkapist
  • Kokk annab lõpuks toidu kelnerile üle. Nüüd on kelneri ülesanne see toit köögist väljapoole tassida.
  • Nüüd teab kelner, millise toidu olete tellinud ja kuidas seda serveeritakse.

Sel juhul,

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

33) Mis vahe on 3-tasemel? Architecture ja MVC Architektuur?

Siin on erinevus 3-astmelise vahel Architecture ja MVC ArchiStruktuur:

Parameeter 3-astmeline Architektuur MVC Architektuur
KOMMUNIKATSIOON Seda tüüpi arhitektuurimuster ei suhtle kunagi otse andmekihiga. Kõik kihid suhtlevad otse, kasutades kolmnurga topoloogiat.
Kasutus 3-tasandiline: kasutatakse laialdaselt veebirakendustes, kus klient, andmetasandid ja vahevara töötavad füüsiliselt eraldiseisvatel platvormidel. Tavaliselt kasutatakse rakendustes, mis töötavad ühes graafilises tööjaamas.

34) Kuidas saate JSP-s MVC arhitektuuri kasutada?

Järgmine näide näitab MVC arhitektuuri kasutamist JSP-s:

  • Võtame näiteks vormi, millel on kaks muutujat, "e-post" ja "parool", mis on meie vaatekiht.
  • Kui kasutaja sisestab e-posti aadressi ja parooli ning klõpsab käsul Esita, edastatakse toiming mvc_servletis, kus edastatakse e-post ja parool.
  • See mvc_servlet on kontrolleri kiht. Siin mvc_servletis saadetakse päring ubaobjektile, mis toimib mudelkihina.
  • E-posti ja parooli väärtused seatakse uba ja salvestatakse edasiseks kasutamiseks.
  • Oast tuuakse väärtus ja seda näidatakse vaatekihis.

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) Kuidas MVC kevadel töötab?

Siin on, kuidas MVC kevadel töötab:

  • DispatcherServlet saab päringu.
  • Pärast seda suhtleb DispatcherServlet HandlerMappinguga. Samuti tühistab see selle konkreetse taotlusega seotud vastutava töötleja.
  • Kontroller töötleb seda päringut, kutsudes välja teenindusmeetodid, ja DispatcherServlet tagastab ModelAndView objekti.
  • Vaate nimi saadetakse ViewResolverile, et leida tegelik vaade, mida kutsuda.
  • Pärast seda edastatakse DispatcherServlet tulemuse renderdamiseks vaatele.
  • Mudeli andmeid kasutades renderdab vaade ja saadab tulemuse kasutajale tagasi.

36) Milliseid olulisi punkte tuleks MVC rakenduse loomisel meeles pidada?

Siin on mõned olulised punktid, mida MVC rakenduse loomisel meeles pidada:

  • Peate meeles pidama, et ASP.net MVC ei asenda ASP.Neti veebivormipõhiseid rakendusi
  • MVC rakenduste arendamise lähenemisviis tuleb otsustada ASP.net MVC pakutavate rakendusnõuete ja funktsioonide põhjal, et see vastaks konkreetsetele arendusvajadustele.
  • Rakenduste arendusprotsess ASP.NET MVC-ga on veebivormipõhiste rakendustega võrreldes keerulisem.
  • Rakenduste hooldatavus on alati suurem rakenduse ülesannete eraldamisega.

37) Mis vahe on veebivormidel ja MVC-l?

Siin on erinevus veebivormide ja MVC vahel:

parameetrid Web Forms MVC
MUDEL Asp.Net Web Forms järgib sündmustepõhist arendusmudelit. Asp.Net MVC kasutab MVC mustripõhist arendusmudelit.
Kasutatud alates Tegutsenud aastast 2002 See ilmus esmakordselt 2009. aastal
View oleku tugi Asp.Net Web Forms toetab olekuhalduse vaate olekut kliendi poolel. .Net MVC ei toeta vaate olekut.
URL-i tüüp Asp.Net Web Formsil on failipõhised URL-id. See tähendab, et URL-ides on failinimi olemas ja need peavad füüsiliselt eksisteerima. Asp.Net MVC-l on marsruudipõhised URL-id, mis tähendab, et URL-id suunatakse ümber kontrolleritele ja toimingutele.
Süntaks Asp.Net MVC järgib veebivormide süntaksit. Asp.Net MVC järgib kohandatavat süntaksit.
Vaate tüüp Veebivormide vaated on tihedalt seotud koodi taga (ASPX-CS), st loogikaga. MVC vaateid ja loogikat hoitakse alati eraldi.
Ühtlane välimus ja tunne Sellel on ühtse välimuse jaoks põhilehed. Asp.Net MVC-l on ühtse välimuse jaoks paigutused.
Koodi korduvkasutatavus Web Forms pakub kasutaja juhtelemente koodi taaskasutamiseks. Asp.Net MVC pakub koodi taaskasutamiseks osalisi vaateid.
HTML-i juhtimine Less renderdatud HTML-i juhtimine. Täielik kontroll HTML-i üle
Riigi juhtimine Juhtelementide automaatne olekuhaldus. Käsitsi olekujuhtimine.
TDD tugi Nõutav on nõrk või kohandatud TDD. Julgustab ja sisaldab TDD-d!

38) Kuidas saate CodeIgniteris midagi kuvada?

Siin on kood millegi kuvamiseks CodeIgniteris:

<?=$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) Kirjutage CodeIgniteris mudeli, vaate ja kontrolleri demonstreerimiseks kood.

Siin on kood mudeli, vaate ja kontrolleri demonstreerimiseks CodeIgniteris:

Avage fail Welcome.php kontroller, mille asukoht on rakendus/kontrollerid:

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

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

Uuendage indeksit järgmiselt.

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

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

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

Kirjutage alljärgnev kood saidile customer_model.php kaustas 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;
    }
}

Avage welcome_message.php, mis asub aadressil

application/views/welcome_message.php

Asendage kood järgmisega

<!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) Kas saate luua veebirakenduse nii veebivormide kui ka MVC-ga?

Jah. Hübriidrakenduse loomiseks peate veebivormide rakendusse lisama allolevad MVC koostu viited.

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

41) Kuidas saate ASP.NET Web API Actionile pseudonüümi määrata?

Saame anda Web API tegevusele sama pseudonüümi kui ASP.NET MVC puhul, kasutades atribuuti "ActionName" järgmiselt:

[HttpPost]

[ActionName("SaveStudentInfo")]

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

42) Mis on peamine erinevus MVC ja WebAPI vahel?

Siin on peamine erinevus MVC ja WebAPI vahel:

MVC raamistikku kasutatakse kasutajaliidesega rakenduste arendamiseks. Selleks saab vaateid kasutada kasutajaliidese ehitamiseks.

WebAPI-d kasutatakse HTTP teenuste arendamiseks. Teisi rakendusi võib nende andmete toomiseks nimetada ka WebAPI meetoditeks.


43) Kuidas saate tagada, et Web API tagastab ainult JSON-andmed?

Veebi API serialiseerimiseks tagastatava objekti JSON-vormingusse ja tagastab ainult JSON-andmed. Selleks peaksite igas MVC Web API projektis klassis WebApiConfig.cs lisama järgmise koodi:

//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) Mis vahe on MVVM-il ja MVC-l?

Siin on olulised erinevused MVVM ja MVC vahel:

MVC MVVM
Kontroller on rakenduse sisenemispunkt. Vaade on rakenduse sisenemispunkt.
Üks kuni mitu seost Controlleri ja View vahel. Üks kuni mitu seost vaate ja vaate mudeli vahel.
Vaade ei viita kontrollerile Vaatel on viited vaatemudelile.
MVC on vana mudel MVVM on suhteliselt uus mudel.
Seda mudelit on raske lugeda, muuta, testida ja uuesti kasutada Silumisprotsess on keeruline, kui meil on keerulised andmesidemed.
MVC mudeli komponenti saab testida kasutajast eraldi Lihtne eraldi üksuse testimine ja kood on sündmustepõhine.

45) Mis on AngularJS-is MVC?

Angular.js järgib MVC arhitektuuri, MVC raamistiku diagramm on näidatud allpool.

  • Kontroller esindab kihti, millel on äriloogika. Kasutajasündmused käivitavad teie kontrollerisse salvestatud funktsioonid. Kasutaja sündmused on osa kontrollerist.
  • Vaateid kasutatakse lõppkasutajatele pakutava esitluskihi esindamiseks.
  • Teie andmete esitamiseks kasutatakse mudeleid. Teie mudeli andmed võivad olla sama lihtsad kui primitiivsed deklaratsioonid. Näiteks kui hooldate õpilasrakendust, võib teie andmemudelil olla lihtsalt õpilase ID ja nimi. Või võib see olla keeruline, kuna sellel on struktureeritud andmemudel. Kui hooldate autoomaniku rakendust, võite omada struktuure, mis määravad sõiduki enda mootori töömahu, istekohtade mahu jms järgi.

46) Milline on MVC roll AngularJS-is?

Järgmine on AngularJS-kontrolleri töö lihtne määratlus.

  • Vastutava töötleja esmane kohustus on kontrollida vaatesse edastatavaid andmeid. Ulatusel ja vaatel on kahepoolne suhtlus.
  • Vaate atribuudid võivad kutsuda ulatuse "funktsioone". Lisaks võivad vaates olevad sündmused nimetada ulatuse "meetodeid". Allpool olev koodilõik annab funktsiooni lihtsa näite.
    • Funktsioon ($scope), mis määratletakse kontrolleri ja sisemise funktsiooni määratlemisel, mida kasutatakse $scope.firstName ja $scope.lastName konkatenatsiooni tagastamiseks.
    • Kui defineerite funktsiooni AngularJS-is muutujana, nimetatakse seda meetodiks.

  • Andmed liiguvad sel viisil vastutavast töötlejast ulatusse ja seejärel edasi-tagasi ulatust vaatesse.
  • Ulatust kasutatakse mudeli kuvamiseks. Mudelit saab muuta ulatuses määratletud meetodite abil, mida saab käivitada vaate sündmuste kaudu. Saame määratleda kahesuunalise mudeli sidumise ulatusest mudelini.
  • DOM-i manipuleerimiseks ei tohiks ideaaljuhul kasutada kontrollereid. Seda peaksid tegema direktiivid, mida me hiljem näeme.
  • Parim tava on, et kontrollerid põhinevad funktsionaalsusel. Näiteks kui teil on sisestamiseks vorm ja vajate selleks kontrollerit, looge kontroller nimega "vormikontroller".

47) Kuidas luua AngularJS-is põhikontroller

Allolev koodilõik on lihtne HTML-leht, mille pealkiri on "Sündmuse registreerimine" ja mis sisaldab viiteid olulistele teekidele, nagu Bootstrap, jquery ja Angular.

  1. Lisame viited bootstrap CSS-i stiilitabelitele, mida kasutatakse koos alglaadimise teekidega.
  2. Lisame viiteid AngularJS-i raamatukogudele. Nüüd viidatakse sellest teegist, mida me angular.js-iga edaspidi teeme.
  3. Lisame viited bootstrap teegile, et muuta meie veebileht teatud juhtelementide jaoks paremini tundlikuks.
  4. Oleme lisanud viited jquery teekidele, mida kasutatakse DOM-i manipuleerimiseks. Seda nõuab Angular, kuna osa Angulari funktsioone sõltub sellest teegist.

Vaikimisi on ülaltoodud koodilõik olemas kõigis meie näidetes, nii et saame järgmistes jaotistes näidata ainult konkreetset angularJS-koodi.

Teiseks vaatame oma faile ja failistruktuuri, mida oma kursusega alustame:

  1. Esiteks eraldame oma failid kahte kausta, nagu seda tehakse kõigi tavaliste veebirakendustega. Meil on kaust "CSS". See sisaldab kõiki meie kaskaadlaadilehe faile ja siis on meil kaust "lib", milles on kõik meie JavaScript faile.
  2. Fail bootstrap.css paigutatakse CSS-i kausta ja seda kasutatakse meie veebisaidile hea välimuse ja tunnetuse lisamiseks.
  3. Angular.js on meie peamine fail, mis laaditi alla saidilt angularJS ja mida hoiti meie lib kaustas.
  4. Fail app.js sisaldab meie kontrollerite koodi.
  5. Faili bootstrap.js kasutatakse faili bootstrap.cs täiendamiseks, et lisada meie veebirakendusele bootstrap-funktsioon.
  6. Jquery-faili kasutatakse DOM-i manipuleerimise funktsioonide lisamiseks meie saidile.

Angular.js kasutamise näide:

Me tahame siin lihtsalt kuvada sõnad "AngularJS" nii tekstivormingus kui ka tekstikastis, kui lehte brauseris vaadatakse.

<!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) Mis kasu on ng-kontrollerist AngularJS-i välistes failides

AngularJS-i välistes failides ng-kontrolleri kasutamiseks tehke järgmisi samme

Step 1) Lisage faili app.js oma kontrolleri jaoks järgmine kood

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

Step 2) Nüüd lisage oma Sample.html failis klass div, mis sisaldab käskkirja ng-controller, ja seejärel lisage viide liikme muutujale "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) Kirjutage kood meetodite määratlemiseks AngularJS-kontrolleris?

Siin on kood meetodite määratlemiseks AngularJS-kontrolleris:

<!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) Kirjutage kood ng-mudeli abil, et kuvada AngularJS-is mitmerealine sisendjuhtimine.

Siin on kood, mis kasutab ng-mudelit mitmerealise sisendi juhtimise kuvamiseks AngularJS-is:

<!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) Kirjutage kood sisendelementide kasutamise demonstreerimiseks.

Siin on AngulaJS-i sisendelemente kasutav koodinäide:

<!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) Kuidas saate PHP-s mudelit luua?

Siin on kood PHP-s mudeli loomiseks:

<?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) Miks kasutada PHP MVC Frameworki?

Peaksite kasutama PHP MVC Frameworki, kuna see lihtsustab keerukate tehnoloogiatega töötamist, kuna:

  • Peida kõik keerukad rakenduse üksikasjad
  • Standardmeetodite pakkumine, mida saame oma rakenduste koostamiseks kasutada.
  • Suurenenud arendaja tootlikkus, kuna selliste tegevuste baasrakendus nagu andmebaasiga ühenduse loomine, kasutaja sisendi puhastamine jne on juba osaliselt rakendatud.
  • Professionaalsete kodeerimisstandardite järgimine

54) Mis on populaarsed PHP MVC raamistikud?

Siin on populaarsed PHP MVC raamistikud:

CodeSigniter: See on üks populaarsemaid PHP MVC raamistikke. See on kerge ja sellel on lühike õppimiskõver. Sellel on rikkalik kogum teeke, mis aitavad kiiresti veebisaite ja rakendusi luua. Seda saavad kasutada ka kasutajad, kellel on piiratud teadmised OOP programmeerimisest.

Kohana: See on hierarhiline mudelivaate kontroller HMVC, mis on turvaline ja kerge raamistik. Sellel on rikkalik komponentide komplekt rakenduste kiireks arendamiseks.

KookPHP: See on kujundatud Ruby on rails järgi. See on tuntud selliste kontseptsioonide poolest nagu tarkvara kujundamise mustrid, konfigureerimise konventsioon, ActiveRecord jne.

Zend: See on võimas raamistik, mis on;

  • Turvaline, usaldusväärne, kiire ja skaleeritav
  • Toetab Web 2.0 ja veebiteenuste loomist.

See sisaldab API-sid sellistelt hankijatelt nagu Amazon, Google Flickr, Yahoo jne. See on ideaalne ärirakenduste arendamiseks.


55) Kuidas saate PHP-s vaateid luua?

Siin on kood PHP-s vaadete loomiseks:

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>

Loome nüüd tulemuste lehe 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>

Need intervjuu küsimused aitavad ka teie viva (suuline)