55 parasta MVC-haastattelun kysymystä ja vastausta (PDF)
MVC-haastattelun kysymyksiä ja vastauksia fuksilaisille
1) Mikä on Model-View-Controller?
MVC on ohjelmistoarkkitehtuurimalli verkkosovellusten kehittämiseen. Sitä käsittelee kolme objektia, malli, näkymä ja ohjain.
👉 Ilmainen PDF-lataus: MVC-haastattelun kysymyksiä ja vastauksia
2) Mitä Model-View-Controller edustaa MVC-sovelluksessa?
MVC-mallissa
- Malli– Se edustaa sovellustietoaluetta. Toisin sanoen sovelluksen liiketoimintalogiikka sisältyy malliin ja vastaa tietojen ylläpidosta.
- Näytä– Se edustaa käyttöliittymää, jonka kanssa loppukäyttäjät kommunikoivat. Lyhyesti sanottuna kaikki käyttöliittymän logiikka sisältyy View-sovellukseen.
- Ohjain- Se on ohjain, joka vastaa käyttäjän toimiin. Käyttäjän toimien perusteella vastaava ohjain vastaa mallin sisällä ja valitsee hahmonnettavaksi näkymän, joka näyttää käyttöliittymän. Käyttäjän syöttölogiikka sisältyy ohjaimeen.
3) Nimeä kokoonpano määrittääksesi MVC
- MVC Framework on määritelty System.Web.Mvc-kokoonpanossa.
4) Mitkä ovat ohjaimen toimintamenetelmän eri palautustyypit?
Tässä on erilaisia ohjaimen toimintatavan palautustyyppejä:
- Näytä tulosta
- JavaSkriptin tulos
- Uudelleenohjauksen tulos
- JSON-tulos
- Sisällön tulos
5) Mitä eroa on reittien lisäämisellä verkkolomakesovellukseen ja MVC-sovellukseen?
Reittien lisäämiseen verkkolomakesovellukseen käytämme RouteCollection-luokan MapPageRoute()-metodia, kun taas reittien lisäämiseen MVC-sovellukseen käytämme MapRoute()-metodia.
6) Mitkä ovat kaksi tapaa lisätä rajoituksia reitille?
Kaksi tapaa lisätä rajoituksia reitille ovat
- Käytä säännöllisiä lausekkeita
- Käytä objektia, joka toteuttaa IRouteConstraint Interfacen
7) Mitkä ovat MVC:n edut?
- MVC erottaa projektisi eri segmentiksi, ja kehittäjien on helppo työskennellä sen parissa
- Joitakin projektin osia on helppo muokata tai muuttaa, mikä hyödyttää projektin kehitys- ja ylläpitokustannuksia
- MVC tekee projektistasi systemaattisemman
- Se edustaa selkeää eroa liiketoimintalogiikan ja esityslogiikan välillä
- Jokaisella MVC-objektilla on erilaiset vastuut
- Kehitys etenee rinnakkain
- Helppo hallita ja ylläpitää
- Kaikki luokat ja objektit ovat toisistaan riippumattomia
8) Mitä "beforeFilter()","beforeRender" ja "afterFilter"-funktiot tekevät Controllerissa?
- beforeFilter(): Tämä toiminto suoritetaan ennen jokaista ohjaimen toimintoa. Se on oikea paikka tarkistaa aktiivisen istunnon tai käyttäjien käyttöoikeudet.
- beforeRender(): Tätä toimintoa kutsutaan ohjaimen toimintalogiikan jälkeen, mutta ennen näkymän luomista. Tätä toimintoa ei käytetä usein, mutta sitä voidaan tarvita, jos kutsut render():tä manuaalisesti ennen tietyn toiminnon päättymistä.
- afterFilter(): Tämä toiminto kutsutaan jokaisen ohjaimen toiminnon jälkeen ja renderöinnin jälkeen. Se on viimeinen suoritettava ohjainmenetelmä.
9) Mikä on esittelyn, abstraktion ja ohjauksen komponenttien rooli MVC:ssä?
Tässä on esityksen, abstraktion ja ohjauksen komponenttien rooli MVC:ssä:
- Esittely Se on sovelluksen tietyn abstraktion visuaalinen esitys
- Abstraktio: Se on sovelluksen liiketoiminta-alueen toiminto
- ohjaus: Se on komponentti, joka pitää johdonmukaisuuden järjestelmän sisältämän abstraktion ja niiden esittämisen välillä käyttäjälle sen lisäksi, että se kommunikoi muiden järjestelmän ohjainten kanssa.
10) Mitkä ovat MVC-mallin haitat?
Tässä on joitain MVC-mallin tärkeitä haittoja:
- Mallin malli on hieman monimutkainen.
- Tietojen käytön tehottomuus näkyvissä.
- Nykyaikaisella käyttöliittymällä MVC:tä on vaikea käyttää.
- Tarvitset useita ohjelmoijia rinnakkaiseen kehittämiseen.
- Tarvitaan monenlaista teknologiaosaamista.
11) Mikä on ActionFiltersin rooli MVC:ssä?
MVC:ssä "ActionFilters" auttaa sinua suorittamaan logiikkaa, kun MVC-toiminto suoritetaan tai sitä suoritetaan.
12) Mitkä ovat MVC-projektin toteuttamisen vaiheet?
MVC-projektin toteuttamisen vaiheet sisältävät:
- Vastaanota ensimmäinen hakemuspyyntö
- Suorita reititys
- Luo MVC-pyyntökäsittelijä
- Luo ohjain
- Suorita Controller
- Kutsu toimintaan
- Suorita tulos
13) Mikä on reititys ja kolme segmenttiä?
Reititys auttaa sinua päättämään URL-rakenteen ja yhdistämään URL-osoitteen ohjaimen kanssa.
Kolme reitityksen kannalta tärkeää segmenttiä ovat:
- Ohjaimen nimi
- ActionMethodName
- Parametri
14) Kuinka reititys tehdään MVC-mallissa?
On olemassa joukko reittiä nimeltä RouteCollection, joka koostuu sovelluksessa rekisteröidyistä reiteistä. RegisterRoutes-menetelmä tallentaa reitit tähän kokoelmaan. Reitti määrittää URL-mallin ja käsittelijän käytettäväksi, jos pyyntö vastaa mallia.
MapRoute-menetelmän ensimmäinen parametri on reitin nimi. Toinen parametri on malli, jota URL-osoite vastaa. Kolmas parametri saattaa olla paikkamerkkien oletusarvot, jos niitä ei ole määritetty.
15) Kuinka voit navigoida näkymästä toiseen hyperlinkin avulla?
Käyttämällä "ActionLink"-menetelmää alla olevan koodin mukaisesti. Alla oleva koodi tekee yksinkertaisen URL-osoitteen, joka auttaa navigoimaan "Home"-ohjaimeen ja käynnistämään "GotoHome" -toiminnon.
Tiivistä / Kopioi koodi
<%= Html.ActionLink("Home", "Gotohome") %>
MVC-haastattelukysymyksiä ja vastauksia kokeneille
16) Miten istuntoja ylläpidetään MVC:ssä?
Istuntoja voidaan ylläpitää MVC:ssä kolmella tavalla: tempdata, viewdata ja viewbag.
17) Mitä eroa on Temp datan, View datan ja View Bagin välillä?
- Lämpötilatiedot: Se auttaa säilyttämään tietoja, kun vaihdat ohjaimesta toiseen.
- Näytä tiedot: Se auttaa säilyttämään tietoja, kun siirryt ohjaimesta toiseen.
- Näytä laukku: Se on dynaaminen näkymän tietojen kääre.
18) Mikä on osittainen näkymä MVC:ssä?
Osittainen näkymä MVC:ssä renderöi osan katselusisällöstä. Se auttaa vähentämään koodin päällekkäisyyttä. Yksinkertaisesti sanottuna osittainen näkymä mahdollistaa näkymän hahmontamisen ylätason näkymässä.
19) Kuinka voit ottaa Ajaxin käyttöön MVC:ssä?
MVC:ssä Ajax voidaan toteuttaa kahdella tavalla
- Ajax-kirjastot
- jQuery
20) Mitä eroa on "ActionResultin" ja "ViewResultin" välillä?
"ActionResult" on abstrakti luokka, kun taas "ViewResult" on johdettu "AbstractResult" -luokasta. "ActionResult" sisältää useita johdettuja luokkia, kuten "JsonResult", "FileStreamResult" ja "ViewResult".
"ActionResult" on paras, jos johdat erityyppisiä näkymiä dynaamisesti.
21) Kuinka voit lähettää tuloksen takaisin JSON-muodossa MVC: ssä?
Voit lähettää tuloksen takaisin JSON-muodossa MVC:ssä käyttämällä JSONRESULT-luokkaa.
22) Mitä eroa on näkymän ja osittaisen näkymän välillä?
Tässä on ero näkymän ja osittaisen näkymän välillä
Näytä | Osittainen näkymä |
---|---|
Se sisältää asettelusivun | Se ei sisällä asettelusivua |
Ennen kuin näkymä hahmonnetaan, näkymän aloitussivu hahmonnetaan | Osittaista näkymää ei voida vahvistaa viewtart.cshtml-tiedostolle. Emme voi laittaa yhteistä koodia osittaiselle näkymälle viewStart.cshtml.sivulle |
Näkymässä voi olla merkintätageja, kuten body, html, head, title, meta jne. | Osittainen näkymä on suunniteltu erityisesti renderöimään näkymän sisällä, eikä siinä juuri sen vuoksi ole mitään merkintöjä |
Näkymä ei ole kevyt verrattuna osittaiseen näkymään | Voimme siirtää säännöllisen näkymän RenderPartial-menetelmään |
23) Millaisia tuloksia MVC:ssä on?
MVC:ssä on kaksitoista tulostyyppiä, joissa "ActionResult" -luokka on pääluokka, kun taas 11 ovat niiden alatyyppejä:
- Näytä tulos
- PartialViewResult
- EmptyResult
- RedirectResult
- RedirectToRouteResult
- JsonResult
- JavaScriptResult
- SisältöTulos
- FileContentResult
- FileStreamResult
- FilePathResult
24) Mikä on NonActionAttributen merkitys?
Kaikkia ohjainluokan julkisia menetelmiä käsitellään toimintomenetelmänä, jos haluat estää tämän oletusmenetelmän, sinun on määritettävä julkiselle menetelmälle NonActionAttribute.
25) Mitä hyötyä oletusreitistä {resurssi}.axd/{*pathinfo} on?
Oletusreitti estää verkkoresurssitiedostoa, kuten Webresource.axd tai ScriptResource.axd, koskevien pyyntöjen välittämisen ohjaimelle.
26) Mikä on suoritettavien suodattimien järjestys, jos useita suodattimia toteutetaan?
Suodattimen järjestys olisi seuraava:
- Valtuutussuodattimet
- Toimintasuodattimet
- Vastaussuodattimet
- Poikkeussuodattimet
27) Mitä ASP.NET-suodattimia lopulta suoritetaan?
Lopulta "Poikkeussuodattimet" suoritetaan.
28) Mitkä ovat razor-näkymien tiedostopäätteet?
Partakonenäkymän tiedostopäätteet ovat
- .cshtml: Jos ohjelmointikieli on C#
- .vbhtml: Jos VB on ohjelmointikieli
29) Mitkä ovat kaksi tapaa lisätä rajoituksia reitille?
Kaksi tapaa lisätä rajoituksia reitille ovat:
- Säännöllisten lausekkeiden käyttö
- IRouteConstraint-rajapinnan toteuttavan objektin käyttäminen
30) Mitkä ovat kaksi tapausta, joissa reititystä ei ole toteutettu tai vaadittu?
Kaksi tapausta, joissa reititystä ei vaadita, ovat
- Kun fyysinen tiedosto löytyy, joka vastaa URL-mallia
- Kun reititys on poistettu käytöstä URL-mallissa
MVC-haastattelukysymykset 5 vuoden kokemuksella
31) Mitkä ovat MVC:n ominaisuudet?
Tässä ovat MVC:n ominaisuudet:
- Helppo ja kitkaton testattavuus. Erittäin testattava, laajennettava ja liitettävä kehys.
- Tarjoaa täyden hallinnan HTML-osoitteesi sekä URL-osoitteisiin
- Hyödynnä ASP.NET:n, JSP:n, Djangon jne. tarjoamia ominaisuuksia.
- Selkeä logiikan erottelu: malli, näkymä, ohjain. Sovellustehtävien erottelu liiketoimintalogiikan, Ul-logiikan ja syöttölogiikan avulla.
- URL-reititys SEO-ystävällisille URL-osoitteille. Tehokas URL-kartoitus ymmärrettäville ja haettavissa oleville URL-osoitteille.
- Tuki testipohjaiselle kehitykselle (TDD).
32) Mitkä ovat tosielämän esimerkki MVC:stä?
Tässä on tosielämän esimerkki MVC:stä:
- Oletetaan, että menet ravintolaan. Et mene keittiöön valmistamaan ruokaa, jonka voit varmasti tehdä kotonasi. Sen sijaan menet sinne ja odotat, että tarjoilija tulee.
- Nyt tarjoilija tulee luoksesi ja tilaat vain ruoan. Tarjoilija ei tiedä kuka olet ja mitä haluat, hän vain kirjoitti muistiin ruokatilauksesi yksityiskohdat.
- Sitten tarjoilija siirtyy keittiöön. Keittiössä tarjoilija ei valmista ruokaasi.
- Kokki valmistaa ruokasi. Tarjoilijalle annetaan tilauksesi ja pöytänumerosi.
- Cook valmistaa sitten ruokaa sinulle. Hän käyttää raaka-aineita ruoan valmistukseen. Oletetaan, että tilasit kasvisvoileivän. Sitten hän tarvitsee leipää, tomaattia, perunaa, paprikaa, sipulia, palaa, juustoa jne., jotka tulevat jääkaapista
- Lopulta Cook luovuttaa ruoan tarjoilijalle. Nyt tarjoilijan tehtävänä on siirtää tämä ruoka keittiön ulkopuolelle.
- Nyt tarjoilija tietää, mitä ruokaa olet tilannut ja miten se tarjoillaan.
Tässä tapauksessa,
View= You Waiter= Controller Cook= Model Refrigerator= Data
33) Mitä eroa on 3-tasolla Architecture ja MVC Architektuuri?
Tässä on ero 3-tason välillä Architecture ja MVC Archirakenne:
Parametri | 3-Tier Archirakenne | MVC Archirakenne |
---|---|---|
Viestintä | Tämän tyyppinen arkkitehtuurimalli ei koskaan kommunikoi suoraan tietokerroksen kanssa. | Kaikki tasot kommunikoivat suoraan käyttämällä kolmiotopologiaa. |
Käyttö | 3-tasoinen: käytetään laajalti verkkosovelluksissa, joissa asiakas, tietotasot ja väliohjelmisto toimivat fyysisesti erillisillä alustoilla. | Käytetään yleensä sovelluksissa, jotka toimivat yhdessä graafisessa työasemassa. |
34) Kuinka voit käyttää MVC-arkkitehtuuria JSP:ssä?
Seuraava esimerkki näyttää MVC-arkkitehtuurin käytön JSP:ssä:
- Otamme esimerkin lomakkeesta, jossa on kaksi muuttujaa, "email" ja "password", joka on näkymäkerroksemme.
- Kun käyttäjä syöttää sähköpostiosoitteen ja salasanan ja napsauttaa Lähetä, toiminto välitetään mvc_servletissä, jossa sähköposti ja salasana välitetään.
- Tämä mvc_servlet on ohjainkerros. Täällä mvc_servletissä pyyntö lähetetään papuobjektille, joka toimii mallikerroksena.
- Sähköposti- ja salasanaarvot asetetaan papuun ja tallennetaan myöhempää käyttöä varten.
- Arvo noudetaan papusta ja näytetään näkymäkerroksessa.
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) Kuinka MVC toimii keväällä?
Näin MVC toimii keväällä:
- DispatcherServlet vastaanottaa pyynnön.
- Tämän jälkeen DispatcherServlet kommunikoi HandlerMappingin kanssa. Se myös peruuttaa kyseiseen pyyntöön liittyvän ohjaimen.
- Ohjain käsittelee tämän pyynnön kutsumalla palvelumenetelmiä, ja DispatcherServlet palauttaa ModelAndView-objektin.
- Näkymän nimi lähetetään ViewResolverille todellisen kutsuttavan näkymän löytämiseksi.
- Sen jälkeen DispatcherServlet välitetään View'lle tuloksen renderöimiseksi.
- Mallitietoja käyttämällä näkymä hahmontaa ja lähettää tuloksen takaisin käyttäjälle.
36) Mitkä ovat tärkeitä asioita, jotka on muistettava luotaessa MVC-sovellusta?
Tässä on joitain tärkeitä asioita, jotka on muistettava luotaessa MVC-sovellusta:
- Muista, että ASP.net MVC ei korvaa ASP.Netin verkkolomakepohjaisia sovelluksia
- MVC-sovelluskehityksen lähestymistapa on päätettävä ASP.net MVC:n tarjoamien sovellusvaatimusten ja ominaisuuksien perusteella erityisten kehitystarpeiden mukaan.
- Sovelluskehitysprosessi ASP.NET MVC:llä on monimutkaisempi verrattuna verkkolomakkeisiin perustuviin sovelluksiin.
- Sovelluksen ylläpidettävyys on aina parempi, kun sovellustehtävät erotetaan toisistaan.
37) Mitä eroa on Web Formsin ja MVC:n välillä?
Tässä on ero Web Formsin ja MVC:n välillä:
parametrit | Web-lomakkeet | MVC |
---|---|---|
Malli | Asp.Net Web Forms noudattaa tapahtumalähtöistä kehitysmallia. | Asp.Net MVC käyttää MVC-mallipohjaista kehitysmallia. |
Käytetty vuodesta | Ollut käytössä vuodesta 2002 | Se julkaistiin ensimmäisen kerran vuonna 2009 |
View-tilan tuki | Asp.Net Web Forms tukee näkymän tilaa tilanhallinnassa asiakaspuolella. | .Net MVC ei tue näkymätilaa. |
URL-tyyppi | Asp.Net Web Formsilla on tiedostopohjaiset URL-osoitteet. Se tarkoittaa, että URL-osoitteissa on tiedostonimi, ja niiden on oltava fyysisesti. | Asp.Net MVC:llä on reittipohjaiset URL-osoitteet, mikä tarkoittaa, että URL-osoitteet ohjataan ohjaimiin ja toimiin. |
Syntaksi | Asp.Net MVC noudattaa Web Forms -syntaksia. | Asp.Net MVC noudattaa muokattavaa syntaksia. |
Näkymän tyyppi | Web Forms -näkymät ovat tiiviisti kytketty Code behind (ASPX-CS) -logiikkaan. | MVC Views ja logiikka säilytetään aina erikseen. |
Tasainen ulkoasu ja tuntuma | Siinä on sivupohjat yhtenäisen ulkoasun takaamiseksi. | Asp.Net MVC:n asettelut takaavat yhtenäisen ilmeen. |
Koodin uudelleenkäyttö | Web Forms tarjoaa käyttäjien ohjaimia koodin uudelleenkäyttöä varten. | Asp.Net MVC tarjoaa osittaisia näkymiä koodin uudelleenkäytettävyydestä. |
HTML-hallinta | Less hallita renderöityä HTML:ää. | Täysi HTML-hallinta |
Valtionhallinto | Ohjainten automaattinen tilanhallinta. | Manuaalinen tilanhallinta. |
TDD tuki | Heikko tai mukautettu TDD vaaditaan. | Kannustaa ja sisältää TDD:n! |
38) Kuinka voit näyttää jotain CodeIgniterissä?
Tässä on koodi, jolla voit näyttää jotain CodeIgniterissä:
<?=$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) Kirjoita koodi mallin, näkymän ja ohjaimen esittelemiseksi CodeIgniterissä.
Tässä on koodi mallin, näkymän ja ohjaimen esittelyyn CodeIgniterissä:
Avaa tiedosto Welcome.php controller, jossa sovellus/ohjaimet:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { $this->load->view('welcome_message'); } }
Päivitä hakemisto seuraavasti:
public function index() { $this->load->model('customers_model'); $data['customer'] = $this->customers_model->get_customer(3); $this->load->view('welcome_message',$data); }
Kirjoita seuraava koodi sovellukseen/mallit kohtaan customer_model.php.
<?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; } }
Avaa welcome_message.php, joka sijaitsee osoitteessa
application/views/welcome_message.php
Korvaa koodi seuraavalla
<!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) Voitko luoda verkkosovelluksen sekä verkkolomakkeilla että MVC:llä?
Joo. Sinun on sisällytettävä alla olevat MVC-kokoonpanoviitteet verkkolomakesovellukseen luodaksesi hybridisovelluksen.
System.Web.Mvc System.Web.Razor System.ComponentModel.DataAnnotations
41) Kuinka voit määrittää aliaksen nimen ASP.NET Web API Actionille?
Voimme antaa Web API -toiminnolle saman aliaksenimen kuin ASP.NET MVC:lle käyttämällä "ActionName" -attribuuttia seuraavasti:
[HttpPost] [ActionName("SaveStudentInfo")] public void UpdateStudent(Student aStudent) { StudentRepository.AddStudent(aStudent); }
42) Mikä on tärkein ero MVC:n ja WebAPI:n välillä?
Tässä on tärkein ero MVC:n ja WebAPI:n välillä:
MVC-kehystä käytetään sellaisten sovellusten kehittämiseen, joissa on käyttöliittymä. Tätä varten näkymiä voidaan käyttää käyttöliittymän rakentamiseen.
WebAPI:tä käytetään HTTP-palveluiden kehittämiseen. Muita sovelluksia voidaan myös kutsua WebAPI-menetelmiksi näiden tietojen hakemiseksi.
43) Kuinka voit varmistaa, että Web API palauttaa vain JSON-tiedot?
Web API:n saattaminen sarjoittamaan palaavan objektin JSON-muotoon ja palauttaa vain JSON-tiedot. Tätä varten sinun tulee lisätä seuraava koodi WebApiConfig.cs-luokkaan missä tahansa MVC Web API -projektissa:
//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) Mitä eroa on MVVM:n ja MVC:n välillä?
Tässä ovat tärkeät erot MVVM:n ja MVC:n välillä:
MVC | MVVM |
---|---|
Ohjain on sovelluksen sisääntulopiste. | Näkymä on sovelluksen sisääntulokohta. |
Ohjaimen ja näkymän välinen suhde yhdestä moneen. | Yksi tai useampi suhde View & View Modelin välillä. |
Näkymä ei viittaa ohjaimeen | Näkymässä on viittauksia näkymämalliin. |
MVC on vanha malli | MVVM on suhteellisen uusi malli. |
Tätä mallia on vaikea lukea, muuttaa, yksikkötestata ja käyttää uudelleen | Virheenkorjausprosessi on monimutkainen, kun meillä on monimutkaisia datasidoksia. |
MVC Model -komponentti voidaan testata erikseen käyttäjästä | Helppo erillisen yksikön testaus ja koodi on tapahtumaohjattu. |
45) Mikä on MVC AngularJS:ssä?
Angular.js noudattaa MVC-arkkitehtuuria, MVC-kehyksen kaavio on esitetty alla.
- Ohjain edustaa kerrosta, jolla on liiketoimintalogiikka. Käyttäjätapahtumat käynnistävät ohjaimesi sisään tallennetut toiminnot. Käyttäjätapahtumat ovat osa ohjainta.
- Näkymiä käytetään edustamaan esityskerrosta, joka tarjotaan loppukäyttäjille.
- Malleja käytetään edustamaan tietojasi. Mallinne tiedot voivat olla yhtä yksinkertaisia kuin vain primitiiviset ilmoitukset. Jos esimerkiksi ylläpidät opiskelijasovellusta, tietomallissasi voi olla vain opiskelijatunnus ja nimi. Tai se voi olla myös monimutkaista, koska sillä on strukturoitu tietomalli. Jos ylläpidät auton omistushakemusta, voit määrittää rakenteita itse ajoneuvon moottoritilavuuden, istuintilavuuden jne.
46) Mikä on MVC:n rooli AngularJS:ssä?
Seuraavassa on yksinkertainen määritelmä AngularJS-ohjaimen toiminnasta.
- Rekisterinpitäjän ensisijainen vastuu on hallita näkymään siirtyviä tietoja. Laajuudella ja näkemyksellä on kaksisuuntainen viestintä.
- Näkymän ominaisuudet voivat kutsua laajuuden "funktioita". Lisäksi näkymän tapahtumat voivat kutsua laajuuden "menetelmiä". Alla oleva koodinpätkä antaa yksinkertaisen esimerkin funktiosta.
- Funktio($scope), joka määritetään määritettäessä ohjainta ja sisäinen funktio, jota käytetään palauttamaan $scope.firstName ja $scope.lastName ketjutus.
- Kun AngularJS:ssä määrität funktion muuttujaksi, sitä kutsutaan menetelmäksi.
- Data siirtyy tällä tavalla rekisterinpitäjältä laajuuteen, ja sitten tiedot siirtyvät edestakaisin laajuudesta näkymään.
- Tarkkailualuetta käytetään mallin paljastamiseen näkymään. Mallia voidaan muokata laajuudessa määritellyillä menetelmillä, jotka voidaan laukaista tapahtumien kautta näkymästä. Voimme määritellä kaksisuuntaisen mallin sidoksen laajuudesta malliin.
- Ohjaimia ei tulisi ihanteellisesti käyttää DOM:n käsittelyyn. Tämä pitäisi tehdä direktiiveillä, jotka tulemme näkemään myöhemmin.
- Paras käytäntö on, että ohjaimet perustuvat toimivuuteen. Jos sinulla on esimerkiksi lomake syötettä varten ja tarvitset sitä varten ohjaimen, luo ohjain nimeltä "lomakeohjain".
47) Perusohjaimen rakentaminen AngularJS:ssä
Alla oleva koodinpätkä on yksinkertainen HTML-sivu, jonka otsikko on "Tapahtumien rekisteröinti" ja jossa on viittauksia tärkeisiin kirjastoihin, kuten Bootstrap, jquery ja Angular.
- Lisäämme viittauksia bootstrap CSS -tyylisivuihin, joita käytetään bootstrap-kirjastojen yhteydessä.
- Lisäämme viittauksia AngularJS-kirjastoihin. Joten nyt kaikki, mitä teemme angular.js:n kanssa jatkossa, viitataan tästä kirjastosta.
- Lisäämme viittauksia bootstrap-kirjastoon, jotta verkkosivumme reagoisi paremmin tietyille säätimille.
- Olemme lisänneet viittauksia jquery-kirjastoihin, joita käytetään DOM-käsittelyyn. Angular vaatii tätä, koska osa Angularin toiminnoista on riippuvaisia tästä kirjastosta.
Oletuksena yllä oleva koodinpätkä on läsnä kaikissa esimerkeissämme, jotta voimme näyttää vain tietyn angularJS-koodin seuraavissa osissa.
Toiseksi tarkastellaan tiedostojamme ja tiedostorakennetta, jonka aiomme aloittaa kurssillamme:
- Ensin erottelemme tiedostomme kahteen kansioon, kuten tehdään kaikissa tavanomaisissa verkkosovelluksissa. Meillä on "CSS"-kansio. Se sisältää kaikki CSS-tyylisivutiedostomme, ja sitten meillä on "lib"-kansiomme, jossa on kaikki JavaKäsikirjoitus tiedostoja.
- Bootstrap.css-tiedosto sijoitetaan CSS-kansioon, ja sitä käytetään lisäämään sivustollemme hyvän ulkoasun ja tuntuman.
- Angular.js on päätiedostomme, joka ladattiin angularJS-sivustolta ja säilytettiin lib-kansiossamme.
- App.js-tiedosto sisältää koodimme ohjaimille.
- Bootstrap.js-tiedostoa käytetään täydentämään bootstrap.cs-tiedostoa bootstrap-toiminnon lisäämiseksi verkkosovellukseemme.
- Jquery-tiedostoa käytetään lisäämään DOM-käsittelytoimintoja sivustollemme.
Esimerkki angular.js:n käytöstä:
Haluamme tässä vain näyttää sanat "AngularJS" sekä tekstimuodossa että tekstiruudussa, kun sivua tarkastellaan selaimessa.
<!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) Mikä on ng-controllerin käyttö ulkoisissa tiedostoissa AngularJS:ssä
Suorita seuraavat vaiheet käyttääksesi ng-ohjainta ulkoisissa tiedostoissa AngularJS:ssä
Vaihe 1) Lisää app.js-tiedostoon seuraava koodi ohjaimellesi
angular.module('app',[]).controller('HelloWorldCtrl',function($scope) { $scope.message = "Hello World" });
Vaihe 2) Lisää nyt Sample.html-tiedostoosi div-luokka, joka sisältää käskyn ng-controller, ja lisää sitten viittaus jäsenmuuttujaan "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) Kirjoita koodi määrittääksesi menetelmät AngularJS Controllerissa?
Tässä on koodi, jolla voit määrittää menetelmät AngularJS-ohjaimessa:
<!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) Kirjoita koodi ng-mallilla näyttääksesi monirivisen tulon ohjauksen AngularJS:ssä.
Tässä on koodi, joka käyttää ng-mallia monirivisen tuloohjauksen näyttämiseen AngularJS:ssä:
<!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> Topic Description:<br> <br> <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) Kirjoita koodi, joka osoittaa syöteelementtien käytön.
Tässä on esimerkki koodista, jossa käytetään AngulaJS-syöttöelementtejä:
<!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> Topic Description:<br> <br> Name : <input type="text" ng-model="pname"><br> Topic : <br> <input type="checkbox" ng-model="Topic.Controller">Controller<br> <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) Kuinka voit luoda mallin PHP:ssä?
Tässä on koodi mallin luomiseen PHP:ssä:
<?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) Miksi käyttää PHP MVC Frameworkia?
Sinun tulisi käyttää PHP MVC Frameworkia, koska se yksinkertaistaa monimutkaisten teknologioiden kanssa työskentelemistä:
- Piilottaa kaikki monimutkaiset toteutustiedot
- Tarjoaa vakiomenetelmiä, joita voimme käyttää sovelluksiemme rakentamiseen.
- Lisääntynyt kehittäjien tuottavuus, tämä johtuu siitä, että toimintojen perustoteutus, kuten tietokantaan yhdistäminen, käyttäjän syötteiden puhdistaminen jne., on jo osittain toteutettu.
- Ammattimaisten koodausstandardien noudattaminen
54) Mitkä ovat suositut PHP MVC -kehykset?
Tässä ovat suositut PHP MVC -kehykset:
CodeIgniter: Se on yksi suosituimmista PHP MVC -kehyksistä. Se on kevyt ja siinä on lyhyt oppimiskäyrä. Siinä on runsaasti kirjastoja, jotka auttavat rakentamaan verkkosivustoja ja sovelluksia nopeasti. Käyttäjät, joilla on vähän tietoa OOP-ohjelmoinnista, voivat myös käyttää sitä.
Kohana: Se on hierarkkinen mallinäkymäohjain HMVC, joka on turvallinen ja kevyt kehys. Siinä on runsaasti komponentteja sovellusten nopeaan kehittämiseen.
KakkuPHP: Se on mallinnettu Ruby on rails -mallin mukaan. Se tunnetaan sellaisista käsitteistä kuin ohjelmistojen suunnittelumalleista, konfiguroinnista, ActiveRecordista jne.
Zend: Se on voimakas kehys;
- Turvallinen, luotettava, nopea ja skaalautuva
- Tukee Web 2.0:aa ja verkkopalvelujen luomista.
Se sisältää API:ita toimittajilta, kuten Amazon, Google, Flickr, Yahoo jne. Se on ihanteellinen yrityssovellusten kehittämiseen.
55) Kuinka voit luoda näkymiä PHP:ssä?
Tässä on koodi näkymien luomiseen PHP:ssä:
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>
Luodaan nyt tulossivu tulokset.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>
Nämä haastattelukysymykset auttavat myös vivassasi (suullinen)