Az 55 legnépszerűbb MVC interjúkérdés és válasz (PDF)
MVC interjúkérdések és válaszok a frisseseknek
1) Mi az a Model-View-Controller?
Az MVC egy szoftverarchitektúra minta webes alkalmazások fejlesztésére. Három objektum kezeli: Modell, View és Controller.
👉 Ingyenes PDF letöltés: MVC interjúkérdések és válaszok
2) Mit jelent a Model-View-Controller egy MVC alkalmazásban?
Az MVC modellben
- Modell– Az alkalmazás adattartományát képviseli. Más szóval, egy alkalmazás üzleti logikáját a modell tartalmazza, és az adatok karbantartásáért felelős.
- Kilátás– Azt a felhasználói felületet jelenti, amellyel a végfelhasználók kommunikálnak. Röviden, az összes felhasználói felület logikáját a View tartalmazza.
- Vezérlő- A vezérlő válaszol a felhasználó műveleteire. A felhasználói műveletek alapján a megfelelő vezérlő válaszol a modellen belül, és kiválaszt egy olyan nézetet, amely megjeleníti a felhasználói felületet. A felhasználói beviteli logika a vezérlőben található.
3) Nevezze el az összeállítást az MVC meghatározásához
A MVC keretrendszer a System.Web.Mvc összeállításban van megadva.
4) Melyek a vezérlő műveleti metódusának különböző visszatérési típusai?
Íme a vezérlő műveleti metódusainak különböző visszatérési típusai:
- Eredmény megtekintése
- JavaSzkript eredménye
- Átirányítási eredmény
- JSON eredmény
- Tartalom Eredmény
5) Mi a különbség az útvonalak webűrlap-alkalmazásokhoz és MVC-alkalmazásokhoz való hozzáadása között?
Útvonalak webűrlap-alkalmazásokhoz való hozzáadásához a RouteCollection osztály MapPageRoute() metódusát, míg MVC alkalmazáshoz való útvonalak hozzáadásához a MapRoute() metódust használjuk.
6) Mi a két módja annak, hogy megszorításokat adjunk egy útvonalhoz?
A két módszer arra, hogy megszorításokat adjon egy útvonalhoz
- Használjon reguláris kifejezéseket
- Használjon olyan objektumot, amely megvalósítja az IRouteConstraint interfészt
7) Mik az MVC előnyei?
- Az MVC egy másik szegmensre osztja szét a projektet, és a fejlesztők könnyebben dolgozhatnak rajta
- Könnyen szerkeszthető vagy módosítható a projekt egyes részei, amelyek csökkentik a projekt fejlesztési és karbantartási költségeit
- Az MVC rendszeresebbé teszi a projektjét
- Ez egyértelmű elválasztást jelent az üzleti logika és a prezentációs logika között
- Minden MVC objektumnak más-más felelőssége van
- A fejlesztés párhuzamosan halad
- Könnyen kezelhető és karbantartható
- Minden osztály és objektum független egymástól
8) Mit csinálnak a „beforeFilter()”, „beforeRender” és „afterFilter” függvények a Controllerben?
- beforeFilter(): Ez a funkció a vezérlő minden művelete előtt lefut. Ez a megfelelő hely az aktív munkamenetek ellenőrzésére vagy a felhasználói engedélyek ellenőrzésére.
- beforeRender(): Ezt a függvényt a vezérlő műveleti logikája után hívják meg, de a nézet megjelenítése előtt. Ezt a függvényt nem gyakran használják, de szükség lehet rá, ha manuálisan hívja meg a render() függvényt egy adott művelet vége előtt.
- afterFilter(): Ez a függvény minden vezérlőművelet után és a renderelés után meghívásra kerül. Ez az utolsó futtatható vezérlő módszer.
9) Mi a szerepe a prezentáció, az absztrakció és a vezérlés összetevőknek az MVC-ben?
Íme a Prezentáció, az Absztrakció és a Vezérlés komponensek szerepe az MVC-ben:
- Bemutatkozás: Ez egy adott absztrakció vizuális megjelenítése az alkalmazáson belül
- Absztrakció: Ez az alkalmazáson belüli üzleti tartomány funkciója
- Ellenőrzés: Ez egy olyan komponens, amely konzisztenciát biztosít a rendszeren belüli absztrakció és azok felhasználó számára történő megjelenítése között, valamint a rendszeren belüli egyéb vezérlőkkel kommunikál.
10) Melyek az MVC modell hátrányai?
Íme néhány fontos hátránya az MVC modellnek:
- A modell mintája kissé összetett.
- Az adatokhoz való hozzáférés hatékonyságának hiánya látható.
- A modern felhasználói felülettel nehézkes az MVC használata.
- A párhuzamos fejlesztéshez több programozóra van szükség.
- Több technológiai ismeret szükséges.
11) Mi a szerepe az „ActionFilters”-nek az MVC-ben?
Az MVC-ben az „ActionFilters” segít a logika végrehajtásában, miközben az MVC-művelet végrehajtásra kerül, vagy éppen végrehajtás alatt áll.
12) Mik a lépései egy MVC projekt végrehajtásának?
Az MVC projekt végrehajtásának lépései a következőket tartalmazzák:
- Fogadja meg az első pályázati kérelmet
- Végezze el az útválasztást
- Hozzon létre egy MVC kéréskezelőt
- Vezérlő létrehozása
- Vezérlő végrehajtása
- Cselekvés előhívása
- Eredmény végrehajtása
13) Mi az útválasztás és a három szegmens?
Az útválasztás segít az URL-struktúra meghatározásában és az URL-nek a vezérlővel való leképezésében.
Az útválasztáshoz fontos három szegmens:
- ControllerName
- ActionMethodName
- Vizsgált paraméter
14) Hogyan történik az útválasztás az MVC mintában?
Létezik egy RouteCollection nevű útvonalcsoport, amely az alkalmazásban regisztrált útvonalakból áll. A RegisterRoutes metódus rögzíti az útvonalakat ebben a gyűjteményben. Az útvonal meghatároz egy URL-mintát és egy kezelőt, amelyet akkor kell használni, ha a kérés megegyezik a mintával.
A MapRoute metódus első paramétere az útvonal neve. A második paraméter az a minta lesz, amelyhez az URL illeszkedik. A harmadik paraméter lehet a helyőrzők alapértelmezett értéke, ha nincsenek meghatározva.
15) Hogyan navigálhat az egyik nézetből a másik nézetbe hiperhivatkozás segítségével?
Az „ActionLink” módszer használatával, az alábbi kódban látható módon. Az alábbi kód egy egyszerű URL-t hoz létre, amely segít a „Home” vezérlőhöz való navigálásban és a „GotoHome” művelet meghívásában.
Összecsukás / Kód másolása
<%= Html.ActionLink("Home", "Gotohome") %>
MVC interjú kérdések és válaszok tapasztaltaknak
16) Hogyan tartják fenn a munkameneteket az MVC-ben?
A munkamenetek háromféleképpen tarthatók fenn az MVC-ben: tempdata, viewdata és viewbag.
17) Mi a különbség a Temp Data, View Data és View Bag között?
- Hőmérsékleti adatok: Segít megőrizni az adatokat, amikor egyik vezérlőről a másikra vált.
- Adatok megtekintése: Segít megőrizni az adatokat, amikor vezérlőről nézetre vált.
- Táska megtekintése: Ez egy dinamikus burkoló a nézetadatok körül.
18) Mi az a részleges nézet az MVC-ben?
Az MVC részleges nézete megjeleníti a nézeti tartalom egy részét. Hasznos a kódduplikáció csökkentésében. Egyszerűen fogalmazva, a részleges nézet lehetővé teszi egy nézet megjelenítését a szülőnézeten belül.
19) Hogyan implementálható az Ajax az MVC-ben?
Az MVC-ben az Ajax kétféleképpen valósítható meg
- Ajax könyvtárak
- jquery
20) Mi a különbség az „ActionResult” és a „ViewResult” között?
Az „ActionResult” egy absztrakt osztály, míg a „ViewResult” az „AbstractResult” osztályból származik. Az „ActionResult” számos származtatott osztályt tartalmaz, például „JsonResult”, „FileStreamResult” és „ViewResult”.
Az „ActionResult” a legjobb, ha dinamikusan származtatja a különböző típusú nézeteket.
21) Hogyan küldheti vissza az eredményt JSON formátumban MVC-ben?
Ha az eredményt JSON formátumban szeretné visszaküldeni MVC-ben, használhatja a „JSONRESULT” osztályt.
22) Mi a különbség a Nézet és a Részleges nézet között?
Itt van a különbség a nézet és a részleges nézet között
Kilátás | Részleges nézet |
---|---|
Ez tartalmazza az elrendezési oldalt | Nem tartalmazza az elrendezési oldalt |
Bármely nézet megjelenítése előtt a nézet kezdőoldala megjelenik | A viewtart.cshtml esetén a részleges nézet nem érvényes. Nem tudunk közös kódot elhelyezni a viewStart.cshtml.page részleges nézetéhez |
A nézet tartalmazhat jelölőcímkéket, például body, html, head, title, meta stb. | A részleges nézet kifejezetten a nézeten belüli megjelenítésre készült, és éppen ezért nem tartalmaz semmilyen jelölést |
A nézet nem könnyű a részleges nézethez képest | A RenderPartial metódusnak átadhatunk egy szabályos nézetet |
23) Milyen típusú eredmények vannak az MVC-ben?
Az MVC-ben tizenkét típusú eredmény létezik, ahol az „ActionResult” osztály a fő osztály, míg a 11 az altípusuk:
- Eredmény megtekintése
- PartialViewResult
- EmptyResult
- RedirectResult
- RedirectToRouteResult
- JsonResult
- JavaScriptResult
- Tartalom Eredmény
- FileContentResult
- FileStreamResult
- FilePathResult
24) Mi a NonActionAttribute jelentősége?
A vezérlőosztály összes nyilvános metódusa műveleti metódusként kezelendő, ha meg akarja akadályozni ezt az alapértelmezett metódust, akkor a nyilvános metódust NonActionAttribute-val kell hozzárendelnie.
25) Mire használható az alapértelmezett {resource}.axd/{*pathinfo} útvonal?
Az alapértelmezett útvonal megakadályozza, hogy a webes erőforrás-fájlok, például a Webresource.axd vagy a ScriptResource.axd kérések átadásra kerüljenek a vezérlőnek.
26) Milyen sorrendben kerülnek végrehajtásra a szűrők, ha több szűrőt implementálunk?
A szűrő sorrendje a következő lenne:
- Engedélyezési szűrők
- Akciószűrők
- Válaszszűrők
- Kivételszűrők
27) Milyen ASP.NET szűrőket hajtanak végre a végén?
A végén a „Kivételszűrők” végrehajtásra kerülnek.
28) Melyek a borotvanézetek fájlkiterjesztései?
A borotvanézeteknél a fájlkiterjesztések a következők
- .cshtml: Ha a C# a programozási nyelv
- .vbhtml: Ha a VB a programozási nyelv
29) Mi a két módja annak, hogy megszorításokat adjunk egy útvonalhoz?
A korlátozások útvonalhoz való hozzáadásának két módja a következő:
- Reguláris kifejezések használata
- Olyan objektum használata, amely megvalósítja az IRouteConstraint interfészt
30) Mi az a két eset, amikor az útválasztás nincs megvalósítva vagy nem szükséges?
Két olyan eset van, amikor nincs szükség útválasztásra
- Ha olyan fizikai fájlt talál, amely megfelel az URL-mintának
- Ha az útválasztás le van tiltva egy URL-mintánál
MVC interjúkérdések 5 éves tapasztalattal
31) Mik az MVC jellemzői?
Íme az MVC jellemzői:
- Könnyű és súrlódásmentes tesztelhetőség. Kiválóan tesztelhető, bővíthető és csatlakoztatható keretrendszer.
- Teljes ellenőrzést biztosít a HTML és az URL-ek felett
- Kihasználja az ASP.NET, JSP, Django stb. által biztosított meglévő szolgáltatásokat.
- A logika egyértelmű szétválasztása: Modell, Nézet, Vezérlő. Alkalmazási feladatok szétválasztása üzleti logikán, Ul logikán és bemeneti logikán keresztül.
- URL-útválasztás SEO-barát URL-ekhez. Hatékony URL-leképezés az érthető és kereshető URL-ekért.
- A tesztvezérelt fejlesztés (TDD) támogatása.
32) Melyek az MVC valós példái?
Íme egy valós példa az MVC-re:
- Tegyük fel, hogy egy étterembe mész. Nem fogsz kimenni a konyhába és ételt készíteni, amit otthonodban biztosan megtehetsz. Ehelyett csak odamész, és megvárod, amíg a pincér bejön.
- Most jön hozzád a pincér, és csak megrendeled az ételt. A pincér nem tudja, ki vagy és mit akarsz, csak felírta az ételrendelésed részleteit.
- Ezután a pincér a konyhába megy. A konyhában a pincér nem készíti el az ételt.
- A szakács elkészíti az ételt. A pincér megkapja megrendelését az asztalszámmal együtt.
- A Cook majd ételt készít Önnek. Az ételek elkészítéséhez alapanyagokat használ. Tegyük fel, hogy zöldséges szendvicset rendelt. Aztán kell neki kenyér, paradicsom, burgonya, paprika, hagyma, falat, sajt stb., ami a hűtőből származik
- Szakács végül átadja az ételt a pincérnek. Most a pincér feladata, hogy ezt az ételt a konyhán kívülre vigye.
- Most a pincér tudja, melyik ételt rendelte, és hogyan szolgálják fel.
Ebben az esetben,
View= You Waiter= Controller Cook= Model Refrigerator= Data
33) Mi a különbség a 3 szint között? Architecture és MVC Architectúra?
Itt van a különbség a 3 szint között Architecture és MVC Architectúra:
Vizsgált paraméter | 3-rétegű Architectúra | MVC Architectúra |
---|---|---|
közlés | Az ilyen típusú architektúra-minta soha nem kommunikál közvetlenül az adatréteggel. | Minden réteg közvetlenül kommunikál a háromszög topológiával. |
Használat | 3-szintű: széles körben használják webes alkalmazásokban, ahol az ügyfél, az adatrétegek és a köztes szoftver fizikailag különálló platformokon fut. | Általában olyan alkalmazásoknál használják, amelyek egyetlen grafikus munkaállomáson futnak. |
34) Hogyan használhatja az MVC architektúrát a JSP-ben?
A következő példa az MVC architektúra használatát mutatja be a JSP-ben:
- Vegyünk egy példát egy űrlapra, amely két változót tartalmaz, az „e-mail” és a „password” nézeti réteget.
- Miután a felhasználó megadja az e-mail címet és a jelszót, és rákattint a küldés gombra, a műveletet az mvc_servlet adja át, ahol az e-mail és a jelszó átadásra kerül.
- Ez az mvc_servlet egy vezérlőréteg. Itt az mvc_servletben a kérés a komponens objektumnak kerül elküldésre, amely modellrétegként működik.
- Az e-mail és a jelszó értékeket a program beállítja, és további célokra tárolja.
- A komponensből a rendszer lekéri az értéket, és megjelenik a nézeti rétegben.
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) Hogyan működik az MVC tavasszal?
Így működik az MVC tavasszal:
- A DispatcherServlet kérést kap.
- Ezt követően a DispatcherServlet kommunikál a HandlerMapping szolgáltatással. Ezenkívül visszavonja az adott kéréshez társított vezérlőt.
- A vezérlő a szolgáltatási metódusok meghívásával dolgozza fel ezt a kérést, és a DispatcherServlet egy ModelAndView objektumot ad vissza.
- A nézet neve elküldésre kerül egy ViewResolvernek, hogy megtalálja a tényleges meghívandó nézetet.
- Ezt követően a DispatcherServlet átadásra kerül a View-nak az eredmény megjelenítéséhez.
- A modelladatok felhasználásával a Nézet megjeleníti és visszaküldi az eredményt a felhasználónak.
36) Melyek azok a fontos szempontok, amelyeket érdemes megjegyezni egy MVC-alkalmazás létrehozásakor?
Íme néhány fontos szempont, amelyet emlékezni kell egy MVC-alkalmazás létrehozásakor:
- Ne feledje, hogy az ASP.net MVC nem helyettesíti az ASP.Net webes űrlap alapú alkalmazásokat
- Az MVC-alkalmazások fejlesztésének megközelítését az ASP.net MVC által biztosított alkalmazáskövetelmények és -szolgáltatások alapján kell eldönteni, hogy megfeleljen az adott fejlesztési igényeknek.
- Az ASP.NET MVC alkalmazásfejlesztési folyamata összetettebb a webes űrlap alapú alkalmazásokhoz képest.
- Az alkalmazások karbantarthatósága mindig magasabb az alkalmazási feladatok szétválasztásával.
37) Mi a különbség a Web Forms és az MVC között?
Itt van a különbség a Web Forms és az MVC között:
paraméterek | Webes űrlapok | MVC |
---|---|---|
Modell | Az Asp.Net Web Forms eseményvezérelt fejlesztési modellt követ. | Az Asp.Net MVC MVC minta alapú fejlesztési modellt használ. |
óta használt | 2002 óta létezik | Először 2009-ben adták ki |
Nézet állapot támogatása | Az Asp.Net Web Forms támogatja a nézet állapotát az állapotkezeléshez az ügyféloldalon. | A .Net MVC nem támogatja a nézet állapotát. |
URL típusa | Az Asp.Net Web Forms fájl alapú URL-ekkel rendelkezik. Ez azt jelenti, hogy a fájlnév létezik az URL-ekben, és ezeknek fizikailag is létezniük kell. | Az Asp.Net MVC útvonal-alapú URL-címekkel rendelkezik, ami azt jelenti, hogy az URL-ek átirányításra kerülnek a vezérlőkhöz és a műveletekhez. |
Szintaxis | Az Asp.Net MVC a webes űrlapok szintaxisát követi. | Az Asp.Net MVC a testreszabható szintaxist követi. |
Nézet típusa | A Web Forms nézetei szorosan kapcsolódnak a Code mögött (ASPX-CS), azaz a logikához. | Az MVC-nézeteket és a logikát mindig külön tároljuk. |
Következetes megjelenés és érzés | Az egységes megjelenés érdekében mesteroldalakkal rendelkezik. | Az Asp.Net MVC elrendezésekkel rendelkezik a következetes megjelenés érdekében. |
Kód újrafelhasználhatósága | A Web Forms felhasználói vezérlőket kínál a kód újrafelhasználásához. | Az Asp.Net MVC részleges nézeteket kínál a kód újrafelhasználásához. |
A HTML vezérlése | Less a renderelt HTML vezérlése. | Teljes ellenőrzés a HTML felett |
Állami irányítás | A vezérlők automatikus állapotkezelése. | Kézi állapotkezelés. |
TDD támogatás | Gyenge vagy egyéni TDD szükséges. | Bátorítja és magában foglalja a TDD-t! |
38) Hogyan lehet megjeleníteni valamit a CodeIgniterben?
Itt van egy kód a CodeIgniterben való megjelenítéséhez:
<?=$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) Írjon egy kódot a modell, a nézet és a vezérlő bemutatásához a CodeIgniterben.
Íme egy kód a modell, a nézet és a vezérlő bemutatásához a CodeIgniterben:
Nyissa meg a Welcome.php vezérlővel rendelkező alkalmazást/vezérlőket:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { $this->load->view('welcome_message'); } }
Frissítse az indexet az alábbiak szerint:
public function index() { $this->load->model('customers_model'); $data['customer'] = $this->customers_model->get_customer(3); $this->load->view('welcome_message',$data); }
Írja be a következő kódot a customer_model.php fájlba az Application/models mappába.
<?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; } }
Nyissa meg a welcome_message.php-t a következő helyen:
application/views/welcome_message.php
Cserélje ki a kódot a következőre
<!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) Létrehozhat webalkalmazást webűrlapokkal és MVC-vel is?
Igen. Hibrid alkalmazás létrehozásához az alábbi MVC összeállítási hivatkozásokat kell tartalmaznia a webes űrlapok alkalmazásában.
System.Web.Mvc System.Web.Razor System.ComponentModel.DataAnnotations
41) Hogyan rendelhet álnevet az ASP.NET Web API-művelethez?
A Web API műveletnek ugyanazt az álnevet adhatjuk, mint az ASP.NET MVC esetében, az „ActionName” attribútum használatával a következőképpen:
[HttpPost] [ActionName("SaveStudentInfo")] public void UpdateStudent(Student aStudent) { StudentRepository.AddStudent(aStudent); }
42) Mi a fő különbség az MVC és a WebAPI között?
Íme a fő különbség az MVC és a WebAPI között:
Az MVC keretrendszer felhasználói felülettel rendelkező alkalmazások fejlesztésére szolgál. Ehhez a nézetek használhatók felhasználói felület felépítésére.
A WebAPI-t HTTP szolgáltatások fejlesztésére használják. Más alkalmazások is nevezhetők WebAPI metódusoknak az adatok lekérésére.
43) Hogyan biztosíthatja, hogy a Web API csak JSON-adatokat adjon vissza?
Annak érdekében, hogy a Web API sorosítsa a visszatérő objektumot JSON formátumba, és csak JSON adatokat adjon vissza. Ehhez hozzá kell adnia a következő kódot a WebApiConfig.cs osztályhoz bármely MVC Web API projektben:
//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) Mi a különbség az MVVM és az MVC között?
Íme a fontos különbségek az MVVM és az MVC között:
MVC | MVVM |
---|---|
A vezérlő az alkalmazás belépési pontja. | A Nézet az alkalmazás belépési pontja. |
Egy vagy több kapcsolat a Controller és a View között. | Egy vagy több kapcsolat a View & View Model között. |
A nézet nem hivatkozik a vezérlőre | A nézet hivatkozásokat tartalmaz a View-Modelre. |
Az MVC régi modell | Az MVVM egy viszonylag új modell. |
Nehéz elolvasni, megváltoztatni, tesztelni és újrafelhasználni ezt a modellt | A hibakeresési folyamat bonyolult lesz, ha összetett adatkötésekkel rendelkezünk. |
Az MVC Model komponens a felhasználótól függetlenül tesztelhető | A különálló egység tesztelése egyszerű, és a kód eseményvezérelt. |
45) Mi az MVC az AngularJS-ben?
Az Angular.js az MVC architektúrát követi, az MVC keretrendszer diagramja alább látható.
- A Controller az üzleti logikával rendelkező réteget képviseli. A felhasználói események aktiválják a vezérlőben tárolt funkciókat. A felhasználói események a vezérlő részét képezik.
- A nézetek a végfelhasználók számára biztosított prezentációs réteg megjelenítésére szolgálnak.
- Az adatok megjelenítésére modelleket használnak. A modellben lévő adatok olyan egyszerűek lehetnek, mintha csak primitív deklarációkkal rendelkeznének. Például, ha diákalkalmazást tart fenn, az adatmodellnek csak egy diákigazolványa és egy név lehet. Vagy összetett is lehet, ha strukturált adatmodellel rendelkezik. Ha autótulajdonosi kérelmet tart karban, rendelkezhet olyan struktúrákkal, amelyek meghatározhatják magát a járművet a motortérfogat, az üléskapacitás stb.
46) Mi a szerepe az MVC-nek az AngularJS-ben?
Az alábbiakban az AngularJS Controller működésének egyszerű definíciója látható.
- Az adatkezelő elsődleges felelőssége a nézetbe továbbított adatok ellenőrzése. A hatókör és a nézet kétirányú kommunikációt folytat.
- A nézet tulajdonságai „függvényeket” hívhatnak a hatókörön. Sőt, a nézetben lévő események „módszereket” hívhatnak a hatókörön. Az alábbi kódrészlet egy egyszerű példát ad egy függvényre.
- A függvény ($scope), amely a vezérlő és egy belső függvény meghatározásakor kerül meghatározásra, amely a $scope.firstName és a $scope.lastName összefűzését adja vissza.
- Az AngularJS-ben, amikor egy függvényt változóként definiál, azt Methodnak nevezik.
- Az adatok így az adatkezelőtől a hatókörbe, majd a hatókörből oda-vissza a nézetbe kerülnek.
- A hatókör a modell megjelenítésére szolgál. A modell a hatókörben definiált metódusokkal módosítható, amelyek a nézetből származó eseményeken keresztül válthatók ki. Kétirányú modellkötést tudunk definiálni a hatókörtől a modellig.
- A vezérlőket ideális esetben nem szabad a DOM manipulálására használni. Ezt az irányelveknek kell megtenniük, amelyeket a későbbiekben látni fogunk.
- A legjobb gyakorlat a funkcionalitáson alapuló vezérlők alkalmazása. Például, ha van egy űrlapja a bevitelhez, és ehhez vezérlőre van szüksége, hozzon létre egy „űrlapvezérlő” nevű vezérlőt.
47) Hogyan készítsünk egy alapvezérlőt az AngularJS-ben
Az alábbi kódrészlet egy egyszerű HTML-oldal, amelynek a címe „Esemény regisztráció”, és hivatkozásokat tartalmaz olyan fontos könyvtárakra, mint pl. Bootstrap, jquery és Angular.
- Hivatkozásokat adunk hozzá a rendszerindító CSS stíluslapokhoz, amelyeket a rendszerindító könyvtárakkal együtt használunk.
- Hivatkozásokat adunk az AngularJS könyvtárakra. Tehát most bármit is teszünk az angular.js-szal, az ebből a könyvtárból fog hivatkozni.
- Hivatkozásokat adunk hozzá a bootstrap könyvtárhoz, hogy weboldalunk jobban reagáljon bizonyos vezérlőelemekre.
- Hivatkozásokat adtunk hozzá a jquery könyvtárakra, amelyeket a DOM-manipulációhoz használunk. Erre azért van szükség az Angular számára, mert az Angular bizonyos funkciói ettől a könyvtártól függenek.
Alapértelmezés szerint a fenti kódrészlet minden példánkban jelen lesz, így a következő szakaszokban csak az adott angularJS kódot tudjuk megjeleníteni.
Másodszor, nézzük meg a fájljainkat és a fájlszerkezetünket, amelyet a tanfolyamunkkal kezdünk:
- Először is 2 mappába különítjük el fájljainkat, ahogyan azt bármely hagyományos webalkalmazásnál teszik. Megvan a „CSS” mappa. Ez tartalmazza majd az összes lépcsőzetes stíluslap fájlunkat, majd meglesz a „lib” mappánk, amelyben az összes JavaForgatókönyv fájlokat.
- A bootstrap.css fájl a CSS mappába kerül, és arra szolgál, hogy webhelyünk megjelenését és hangulatát kölcsönözze.
- Az angular.js a fő fájlunk, amelyet az angularJS webhelyről töltöttünk le, és a lib mappánkban tároltuk.
- Az app.js fájl tartalmazza a vezérlők kódját.
- A bootstrap.js fájl kiegészíti a bootstrap.cs fájlt, hogy bootstrap funkciót adjon webalkalmazásunkhoz.
- A jquery fájlt arra használjuk, hogy DOM-manipulációs funkciókat adjunk webhelyünkhöz.
Példa az angular.js használatára:
Itt csak annyit szeretnénk tenni, hogy az „AngularJS” szavakat szöveges formátumban és szövegmezőben is megjelenítsük, amikor az oldalt a böngészőben tekintjük meg.
<!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) Mire használható az ng-controller külső fájlokban az AngularJS-ben
Hajtsa végre a következő lépéseket az ng-controller használatához az AngularJS külső fájljaiban
Step 1) Az app.js fájlban adja hozzá a következő kódot a vezérlőhöz
angular.module('app',[]).controller('HelloWorldCtrl',function($scope) { $scope.message = "Hello World" });
Step 2) Most a Sample.html fájlban adjon hozzá egy div osztályt, amely tartalmazza az ng-controller direktívát, majd adjon hozzá hivatkozást a „message” tagváltozóra.
<!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) Írjon kódot metódusok meghatározásához az AngularJS Controllerben?
Íme egy kód az AngularJS Controller metódusainak meghatározásához:
<!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) Írjon kódot az ng-modell segítségével a többsoros bemeneti vezérlés megjelenítéséhez az AngularJS-ben.
Itt van egy kód, amely az ng-modellt használja a többsoros bemeneti vezérlés megjelenítéséhez az AngularJS-ben:
<!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) Írjon kódot a bemeneti elemek használatának bemutatására.
Íme egy kódpélda az AngulaJS bemeneti elemekkel:
<!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) Hogyan készíthetsz modellt PHP-ben?
Itt van egy kód a modell létrehozásához PHP-ben:
<?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) Miért érdemes PHP MVC Framework-et használni?
Használja a PHP MVC Framework-et, mert leegyszerűsíti az összetett technológiákkal való munkát:
- Az összes bonyolult megvalósítási részlet elrejtése
- Szabványos módszerek biztosítása, amelyeket alkalmazásaink elkészítéséhez használhatunk.
- Megnövekedett fejlesztői termelékenység, mivel az olyan tevékenységek alapkivitelezése, mint az adatbázishoz való csatlakozás, a felhasználói bemenetek megtisztítása stb., részben már megvalósult.
- A professzionális kódolási szabványok betartása
54) Melyek a népszerű PHP MVC keretrendszerek?
Íme a népszerű PHP MVC keretrendszerek:
CodeIgniter: Ez az egyik legnépszerűbb PHP MVC keretrendszer. Könnyű és rövid tanulási görbéje van. Könyvtárak gazdag készletével rendelkezik, amelyek segítenek webhelyek és alkalmazások gyors létrehozásában. Az OOP programozásban korlátozott ismeretekkel rendelkező felhasználók is használhatják.
Kohana: Ez egy hierarchikus modellnézet-vezérlő HMVC, amely egy biztonságos és könnyű keretrendszer. Gazdag komponenskészlettel rendelkezik az alkalmazások gyors fejlesztéséhez.
TortaPHP: A Ruby on rails mintájára készült. Olyan fogalmakról ismert, mint a szoftvertervezési minták, a konfiguráció feletti konvenció, az ActiveRecord stb.
Zend: Ez egy erőteljes keret;
- Biztonságos, megbízható, gyors és méretezhető
- Támogatja a Web 2.0-t és webszolgáltatások létrehozását.
Olyan gyártóktól származó API-kat tartalmaz, mint AmazonA Google, Flickr, Yahoo stb. Ideális üzleti alkalmazások fejlesztéséhez.
55) Hogyan hozhat létre nézeteket PHP-ben?
Itt van egy kód a nézetek létrehozásához PHP-ben:
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>
Most hozzuk létre a results.php eredményoldalt
<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>
Ezek az interjúkérdések a viva-ban is segítenek.