أهم 55 أسئلة وأجوبة لمقابلة MVC (PDF)

فيما يلي أسئلة مقابلة MVC للمرشحين الجدد وذوي الخبرة للحصول على وظيفة أحلامهم.

 

أسئلة وأجوبة مقابلة MVC للطلاب الجدد

1) ما هو نموذج عرض وحدة التحكم؟

نمط MVC هو نمط معماري برمجي لتطوير البرمجياتping تطبيقات الويب. يتم التعامل معها بواسطة ثلاثة كائنات: النموذج، والعرض، والمتحكم.

👉 تنزيل مجاني بصيغة PDF: أسئلة وأجوبة مقابلة MVC


2) ماذا يمثل Model-View-Controller في تطبيق MVC؟

في نموذج MVC،

  • الموديل- يمثل مجال بيانات التطبيق. بمعنى آخر، يتم تضمين منطق عمل التطبيق في النموذج ويكون مسؤولاً عن الحفاظ على البيانات.
  • عرض الطلب- يمثل واجهة المستخدم التي يتواصل بها المستخدمون النهائيون. باختصار، كل منطق واجهة المستخدم موجود في طريقة العرض.
  • مراقب- وحدة التحكم هي التي تجيب على تصرفات المستخدم. استنادًا إلى إجراءات المستخدم، تستجيب وحدة التحكم المعنية داخل النموذج وتختار طريقة عرض لعرضها تعرض واجهة المستخدم. يتم تضمين منطق إدخال المستخدم داخل وحدة التحكم.

3) قم بتسمية التجميع لتحديد MVC

استخدم إطار MVC تم تعريفه في تجميع System.Web.Mvc.


4) ما هي أنواع الإرجاع المختلفة لطريقة عمل وحدة التحكم

فيما يلي أنواع إرجاع مختلفة لطريقة عمل وحدة التحكم:

  • عرض النتائج
  • Javaنتيجة النص
  • إعادة توجيه النتيجة
  • نتيجة جيسون
  • نتيجة المحتوى

5) ما الفرق بين إضافة مسارات إلى تطبيق نموذج الويب وتطبيق MVC؟

لإضافة مسارات إلى تطبيق نموذج ويب، نستخدم طريقة MapPageRoute() لفئة RouteCollection، بينما لإضافة مسارات إلى تطبيق MVC، نستخدم طريقة MapRoute().


6) ما الطريقتان لإضافة قيود إلى المسار؟

الطريقتان لإضافة قيود إلى المسار هما

  • استخدم التعبيرات العادية
  • استخدم كائنًا يقوم بتطبيق واجهة IRouteConstraint

7) ما هي مميزات MVC؟

  • يقوم MVC بتقسيم مشروعك إلى شريحة مختلفة، ويصبح من السهل على المطورين العمل عليه
  • من السهل تعديل أو تغيير جزء من مشروعك مما يفيد في تقليل تكلفة التطوير والصيانة للمشروع
  • MVC يجعل مشروعك أكثر منهجية
  • إنه يمثل فصلًا واضحًا بين منطق الأعمال ومنطق العرض
  • كل كائن MVC له مسؤوليات مختلفة
  • التطور يتقدم بالتوازي
  • سهل الإدارة والصيانة
  • جميع الفئات والكائنات مستقلة عن بعضها البعض

8) ما هي وظائف "beforeFilter()"، وbeforeRender، و"afterFilter" في وحدة التحكم؟

  • قبل التصفية (): تعمل هذه الوظيفة قبل كل إجراء في وحدة التحكم. إنه المكان المناسب للتحقق من وجود جلسة نشطة أو فحص أذونات المستخدم.
  • قبل العرض (): يتم استدعاء هذه الوظيفة بعد منطق إجراء وحدة التحكم، ولكن قبل عرض العرض. لا يتم استخدام هذه الوظيفة غالبًا، لكن قد تكون مطلوبة إذا كنت تستدعي render() يدويًا قبل نهاية إجراء معين.
  • ما بعد التصفية (): يتم استدعاء هذه الوظيفة بعد كل إجراء تحكم وبعد الانتهاء من العرض. إنها طريقة التحكم الأخيرة للتشغيل.

9) ما هو دور مكونات العرض التقديمي، الملخص؟tracالتحكم في MVC؟

فيما يلي دور مكونات العرض التقديمي، والعرض التقديمي المختصر.tracالتحكم في MVC:

  • العرض: إنه التمثيل المرئي لـ abs محددtraction داخل التطبيق
  • ABStracنشوئها: إنها وظيفة مجال الأعمال داخل التطبيق
  • مراقبة: إنه عنصر يحافظ على التناسق بينtracبالإضافة إلى التواصل مع عناصر التحكم الأخرى داخل النظام وعرضها للمستخدم

10) ما هي عيوب نموذج MVC؟

فيما يلي بعض العيوب المهمة لنموذج MVC:

  • نمط النموذج معقد بعض الشيء.
  • عدم كفاءة الوصول إلى البيانات في العرض.
  • مع واجهة المستخدم الحديثة، من الصعب استخدام MVC.
  • أنت بحاجة إلى مبرمجين متعددين للتطوير الموازي.
  • مطلوب معرفة تقنية متعددة.

11) ما هو دور "ActionFilters" في MVC؟

في MVC، تساعدك "ActionFilters" على تنفيذ المنطق أثناء تنفيذ إجراء MVC أو أثناء تنفيذه.


12) ما هي خطوات تنفيذ مشروع MVC؟

تتضمن خطوات تنفيذ مشروع MVC ما يلي:

  • تلقي الطلب الأول للتطبيق
  • تنفيذ التوجيه
  • قم بإنشاء معالج طلب MVC
  • إنشاء وحدة تحكم
  • تنفيذ وحدة التحكم
  • استدعاء الإجراء
  • تنفيذ النتيجة

13) ما هو التوجيه والأجزاء الثلاثة؟

يساعدك التوجيه على اتخاذ القرار URL هيكلة ورسم خريطة URL مع وحدة التحكم.

الأجزاء الثلاثة المهمة للتوجيه هي:

  • اسم وحدة التحكم
  • اسم طريقة الإجراء
  • معامل

14) كيف يتم التوجيه في نمط MVC؟

توجد مجموعة من المسارات تُسمى مجموعة المسارات، وهي تتكون من المسارات المسجلة في التطبيق. تقوم دالة RegisterRoutes بتسجيل المسارات في هذه المجموعة. يُعرّف المسار... URL نمط ومعالج لاستخدامه إذا تطابق الطلب مع النمط.

المعامل الأول لدالة MapRoute هو اسم المسار. أما المعامل الثاني فهو النمط الذي يتم اتباعه. URL يتطابق. قد تكون المعلمة الثالثة هي القيم الافتراضية للعناصر النائبة إذا لم يتم تحديدها.


15) كيف يمكنك التنقل من طريقة عرض إلى طريقة عرض أخرى باستخدام ارتباط تشعبي؟

باستخدام طريقة "ActionLink" كما هو موضح في الكود أدناه. سيقوم الكود أدناه بإنشاء أمر بسيط URL يساعد ذلك في الانتقال إلى وحدة التحكم "الرئيسية" واستدعاء إجراء "الذهاب إلى المنزل".

طي / نسخ Code

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

أسئلة وأجوبة مقابلة MVC للخبرة

16) كيف يتم الحفاظ على الجلسات في MVC؟

يمكن الحفاظ على الجلسات في MVC بثلاث طرق: البيانات المؤقتة، وبيانات العرض، وحقيبة العرض.


17) ما الفرق بين بيانات درجة الحرارة وعرض البيانات وعرض الحقيبة؟

  • بيانات درجة الحرارة: يساعد على الحفاظ على البيانات عند التبديل من وحدة تحكم إلى أخرى.
  • عرض البيانات: يساعد في الحفاظ على البيانات عند الانتقال من وحدة التحكم إلى العرض.
  • حقيبة عرض: إنه غلاف ديناميكي حول بيانات العرض.

18) ما هو العرض الجزئي في MVC؟

يعرض العرض الجزئي في MVC جزءًا من محتوى العرض. إنه مفيد في تقليل تكرار التعليمات البرمجية. بعبارات بسيطة، يسمح العرض الجزئي بعرض عرض داخل العرض الأصلي.


19) كيف يمكنك تطبيق Ajax في MVC؟

في MVC، يمكن تنفيذ Ajax بطريقتين

  • مكتبات اياكس
  • مسج

20) ما الفرق بين "ActionResult" و"ViewResult"؟

"ActionResult" هو عبارة عنtracالفئة t بينما يتم اشتقاق "ViewResult" من "Abs"tracفئة "tResult". تحتوي فئة "ActionResult" على عدد من الفئات المشتقة مثل "JsonResult" و "FileStreamResult" و "ViewResult".

يعد "ActionResult" هو الأفضل إذا كنت تستمد أنواعًا مختلفة من طرق العرض ديناميكيًا.


21) كيف يمكنك إرسال النتيجة مرة أخرى بتنسيق JSON في MVC؟

من أجل إرسال النتيجة مرة أخرى بتنسيق JSON في MVC، يمكنك استخدام فئة "JSONRESULT".


22) ما الفرق بين العرض والعرض الجزئي؟

هنا هو الفرق بين العرض والعرض الجزئي

عرض الطلب نظرة جزئية
أنه يحتوي على صفحة التخطيط لا يحتوي على صفحة التخطيط
قبل تقديم أي طريقة عرض، يتم عرض صفحة بداية العرض لا يتم التحقق من العرض الجزئي لملف viewstart.cshtml. لا يمكننا وضع كود مشترك للعرض الجزئي داخل viewStart.cshtml.page
قد يحتوي العرض على علامات ترميزية مثل body وhtml وhead وtitle وmeta وما إلى ذلك. تم تصميم العرض الجزئي خصيصًا للعرض داخل العرض، ولهذا السبب فقط لا يتكون من أي علامة
العرض ليس خفيف الوزن مقارنة بالعرض الجزئي يمكننا تمرير عرض عادي إلى طريقة RenderPartial

23) ما هي أنواع النتائج في MVC؟

في MVC، هناك اثني عشر نوعًا من النتائج حيث تكون فئة "ActionResult" هي الفئة الرئيسية بينما الـ 11 هي أنواعها الفرعية:

  • عرض النتائج
  • PartialViewResult
  • نتيجة فارغة
  • RedirectResult
  • RedirectToRouteResult
  • JsonResult
  • Javaنتيجة البرنامج النصي
  • نتيجة المحتوى
  • نتيجة محتوى الملف
  • FileStreamResult
  • FilePathResult

24) ما هي أهمية NonActionAttribute؟

يتم التعامل مع جميع الطرق العامة لفئة وحدة التحكم كطريقة عمل إذا كنت تريد منع هذه الطريقة الافتراضية، فيجب عليك تعيين الطريقة العامة باستخدام NonActionAttribute.


25) ما فائدة المسار الافتراضي {resource}.axd/{*pathinfo}؟

يمنع المسار الافتراضي طلبات ملف مورد الويب مثل Webresource.axd أو ScriptResource.axd من المرور إلى وحدة التحكم.


26) ما هو ترتيب المرشحات التي يتم تنفيذها في حالة تنفيذ مرشحات متعددة؟

سيكون ترتيب التصفية مثل:

  • مرشحات التفويض
  • مرشحات العمل
  • مرشحات الاستجابة
  • مرشحات الاستثناءات

27) ما هي مرشحات ASP.NET التي يتم تنفيذها في النهاية؟

في النهاية يتم تنفيذ "مرشحات الاستثناء".


28) ما هي امتدادات الملفات لعروض الحلاقة؟

بالنسبة لعروض الحلاقة، فإن امتدادات الملفات هي

  • .cshtml: إذا كانت C# هي لغة البرمجة
  • .vbhtml: إذا كانت VB هي لغة البرمجة

29) ما الطريقتان لإضافة قيود إلى المسار؟

هناك طريقتان لإضافة قيود إلى المسار هما:

  • استخدام التعبيرات العادية
  • استخدام كائن يقوم بتطبيق واجهة IRouteConstraint

30) ما هما الحالتان التي لا يتم فيها تنفيذ التوجيه أو عدم الحاجة إليه؟

هناك حالتان حيث التوجيه غير مطلوب

  • عند العثور على ملف فعلي يطابق URL النمط
  • عند تعطيل التوجيه لـ URL النمط

أسئلة مقابلة MVC لمدة 5 سنوات من الخبرة

31) ما هي مميزات MVC؟

فيما يلي ميزات MVC:

  • قابلية اختبار سهلة وبدون احتكاك. إطار عمل قابل للاختبار والتوسيع والتوصيل بدرجة عالية.
  • يوفر تحكمًا كاملاً في HTML الخاص بك بالإضافة إلى URLs
  • الاستفادة من الميزات الموجودة التي توفرها ASP.NET، وJSP، وDjango، وما إلى ذلك.
  • فصل واضح للمنطق: النموذج، العرض، وحدة التحكم. فصل مهام التطبيق عبر منطق الأعمال ومنطق Ul ومنطق الإدخال.
  • URL التوجيه لتحسين محركات البحث URLقوي URL- خريطةping للفهم والبحث URLs.
  • دعم التطوير القائم على الاختبار (TDD).

32) ما هو المثال الواقعي لـ MVC؟

فيما يلي مثال واقعي لـ MVC:

  • لنفترض أنك ذهبت إلى مطعم. لن تذهب إلى المطبخ وتقوم بإعداد الطعام الذي يمكنك بالتأكيد القيام به في منزلك. بدلاً من ذلك، عليك فقط الذهاب إلى هناك وانتظر وصول النادل.
  • الآن يأتي إليك النادل، وأنت فقط تطلب الطعام. النادل لا يعرف من أنت وماذا تريد، لقد كتب للتو تفاصيل طلب الطعام الخاص بك.
  • ثم ينتقل النادل إلى المطبخ. في المطبخ، لا يقوم النادل بإعداد طعامك.
  • يقوم الطاهي بإعداد طعامك، ويتلقى النادل طلبك بالإضافة إلى رقم طاولتك.
  • ثم يقوم الطاهي بإعداد الطعام لك. ويستخدم المكونات لطهي الطعام. لنفترض أنك طلبت شطيرة خضار. ثم يحتاج إلى خبز وطماطم وبطاطس وفلفل وبصل ولحم وجبن وما إلى ذلك، والتي تتوفر مصادرها من الثلاجة.
  • وأخيراً قام كوك بتسليم الطعام للنادل. الآن أصبحت مهمة النادل نقل هذا الطعام خارج المطبخ.
  • الآن يعرف النادل الطعام الذي طلبته وكيف يتم تقديمه.

في هذه الحالة،

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

33) ما هو الفرق بين 3 طبقات Architecture وMVC Archiتكنولوجيا؟

وهنا الفرق بين 3 طبقات Architecture وMVC Archiالبنية:

معامل 3-المستوى Architecture MVC Architecture
التواصل لا يتواصل هذا النوع من أنماط الهندسة المعمارية أبدًا بشكل مباشر مع طبقة البيانات. تتواصل جميع الطبقات مباشرة باستخدام طوبولوجيا المثلث.
الأستعمال 3-tier: يُستخدم على نطاق واسع في تطبيقات الويب حيث يعمل العميل وطبقات البيانات والبرامج الوسيطة على منصات منفصلة فعليًا. يُستخدم بشكل عام في التطبيقات التي تعمل على محطة عمل رسومية واحدة.

34) كيف يمكنك استخدام بنية MVC في JSP؟

يوضح المثال التالي استخدام بنية MVC في JSP:

  • نحن نأخذ مثالًا لنموذج يحتوي على متغيرين، "البريد الإلكتروني" و"كلمة المرور" والتي تشكل طبقة العرض لدينا.
  • بمجرد أن يقوم المستخدم بإدخال البريد الإلكتروني وكلمة المرور والنقر فوق "إرسال"، يتم تمرير الإجراء في mvc_servlet حيث يتم تمرير البريد الإلكتروني وكلمة المرور.
  • إن mvc_servlet عبارة عن طبقة تحكم. هنا في mvc_servlet، يتم إرسال الطلب إلى كائن الفول، الذي يعمل كطبقة نموذجية.
  • يتم تعيين قيم البريد الإلكتروني وكلمة المرور في الملف وتخزينها لأغراض أخرى.
  • من الحبة، يتم جلب القيمة وتظهر في طبقة العرض.

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) كيف يعمل MVC في الربيع؟

إليك كيفية عمل MVC في الربيع:

  • يتلقى DispatcherServlet طلبًا.
  • بعد ذلك، يتواصل DispatcherServlet مع HandlerMappingكما أنه يلغي وحدة التحكم المرتبطة بهذا الطلب المحدد.
  • تقوم وحدة التحكم بمعالجة هذا الطلب عن طريق استدعاء أساليب الخدمة، ويتم إرجاع كائن ModelAndView بواسطة DispatcherServlet.
  • يتم إرسال اسم العرض إلى ViewResolver للعثور على العرض الفعلي لاستدعائه.
  • بعد ذلك، يتم تمرير DispatcherServlet إلى العرض لعرض النتيجة.
  • باستخدام بيانات النموذج، يتم عرض النتيجة وإرسالها مرة أخرى إلى المستخدم.

36) ما هي النقاط المهمة التي يجب تذكرها أثناء إنشاء تطبيق MVC؟

فيما يلي بعض النقاط المهمة التي يجب تذكرها أثناء إنشاء تطبيق MVC:

  • عليك أن تتذكر أن ASP.net MVC ليس بديلاً للتطبيقات المستندة إلى نماذج الويب ASP.Net
  • يجب تحديد أسلوب تطوير تطبيق MVC بناءً على متطلبات التطبيق والميزات التي يوفرها ASP.net MVC لتناسب احتياجات التطوير المحددة.
  • تعتبر عملية تطوير التطبيقات باستخدام ASP.NET MVC أكثر تعقيدًا مقارنة بالتطبيقات المعتمدة على نماذج الويب.
  • تكون قابلية صيانة التطبيق أعلى دائمًا مع فصل مهام التطبيق.

37) ما الفرق بين نماذج الويب وMVC؟

إليك الفرق بين نماذج الويب وMVC:

المعاملات نماذج الويب MVC
الموديل تتبع نماذج الويب Asp.Net نموذج التطوير القائم على الأحداث. يستخدم Asp.Net MVC نموذج التطوير القائم على نمط MVC.
تستخدم منذ كان موجودا منذ عام 2002 تم إصداره لأول مرة في عام 2009
دعم لعرض الحالة تدعم Asp.Net Web Forms حالة العرض لإدارة الحالة من جانب العميل. .Net MVC لا يدعم حالة العرض.
URL نوع تعتمد Asp.Net Web Forms على الملفات URLيعني ذلك أن اسم الملف موجود في URLويجب أن تكون موجودة مادياً. تعتمد Asp.Net MVC على التوجيه URLهذا يعني URLيتم إعادة توجيهها إلى وحدات التحكم والإجراءات.
بناء الجملة يتبع Asp.Net MVC بناء جملة نماذج الويب. يتبع Asp.Net MVC بناء الجملة القابل للتخصيص.
نوع العرض ترتبط طرق عرض نماذج الويب ارتباطًا وثيقًا بـ Code خلف (ASPX-CS)، أي المنطق. يتم دائمًا الاحتفاظ بطرق عرض MVC والمنطق بشكل منفصل.
مظهر وملمس متناسق يحتوي على صفحات رئيسية لإلقاء نظرة متسقة. يحتوي Asp.Net MVC على تخطيطات للحصول على مظهر متسق.
Code إعادة استخدام توفر نماذج الويب عناصر تحكم للمستخدم لإعادة استخدام التعليمات البرمجية. يوفر Asp.Net MVC طرق عرض جزئية لإعادة استخدام التعليمات البرمجية.
التحكم في HTML Less السيطرة على HTML المقدمة. السيطرة الكاملة على HTML
إدارة الدولة إدارة الحالة التلقائية للضوابط. إدارة الحالة اليدوية.
دعم تد مطلوب TDD ضعيف أو مخصص. يشجع ويتضمن TDD!

38) كيف يمكنك عرض شيء ما في Codeأنبوب؟

إليك رمز لعرض شيء ما في Codeأنبوب:

<?=$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) اكتب كودًا لتوضيح مفهوم النموذج والعرض والمتحكم في Codeأنبوب.

إليك نموذجًا برمجيًا لتوضيح النموذج والعرض والمتحكم في Codeأنبوب:

افتح ملف وحدة التحكم Welcome.php الموجود في التطبيق/وحدات التحكم:

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

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

قم بتحديث الفهرس كما يلي:

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

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

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

اكتب الكود التالي في customer_model.php في 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;
    }
}

افتح Welcome_message.php الموجود في

application/views/welcome_message.php

استبدل الكود بالكود التالي

<!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) هل يمكنك إنشاء تطبيق ويب باستخدام كل من نماذج الويب وMVC؟

نعم. يتعين عليك تضمين مراجع تجميع MVC أدناه في تطبيق نماذج الويب لإنشاء تطبيق هجين.

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

41) كيف يمكنك تعيين اسم مستعار لـ ASP.NET Web API Action؟

يمكننا إعطاء اسم مستعار لإجراء Web API كما هو الحال في ASP.NET MVC باستخدام سمة "ActionName" كما يلي:

[HttpPost]

[ActionName("SaveStudentInfo")]

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

42) ما هو الفرق الرئيسي بين MVC وWebAPI؟

إليك الفرق الرئيسي بين MVC وWebAPI:

يُستخدم إطار عمل MVC لتطويرping التطبيقات التي تحتوي على واجهة مستخدم. ولذلك، يمكن استخدام طرق العرض لبناء واجهة المستخدم.

تُستخدم واجهة برمجة تطبيقات الويب (WebAPI) في التطويرping خدمات HTTP. يمكن للتطبيقات الأخرى أيضًا استدعاء طرق WebAPI لجلب تلك البيانات.


43) كيف يمكنك التأكد من أن Web API تقوم بإرجاع بيانات JSON فقط؟

لجعل واجهة برمجة تطبيقات الويب تسلسل الكائن المرتجع إلى تنسيق JSON وترجع بيانات JSON فقط. لهذا، يجب عليك إضافة الكود التالي في فئة WebApiConfig.cs في أي مشروع واجهة برمجة تطبيقات ويب MVC:

//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) ما هو الفرق بين MVVM وMVC؟

فيما يلي الاختلافات المهمة بين MVVM وMVC:

MVC MVVM
وحدة التحكم هي نقطة الدخول إلى التطبيق. العرض هو نقطة الدخول إلى التطبيق.
واحد إلى العديد من العلاقات بين وحدة التحكم والعرض. علاقة واحدة إلى العديد من العلاقات بين عرض وعرض النموذج.
لا يحتوي العرض على إشارة إلى وحدة التحكم العرض يحتوي على إشارات إلى نموذج العرض.
MVC هو النموذج القديم MVVM هو نموذج جديد نسبيًا.
من الصعب قراءة هذا النموذج وتغييره واختبار الوحدة وإعادة استخدامه ستكون عملية تصحيح الأخطاء معقدة عندما يكون لدينا ارتباطات بيانات معقدة.
يمكن اختبار مكون نموذج MVC بشكل منفصل عن المستخدم من السهل اختبار الوحدة المنفصلة والتعليمات البرمجية تعتمد على الأحداث.

45) ما هو MVC في AngularJS؟

يتبع Angular.js بنية MVC، ويظهر الرسم التخطيطي لإطار عمل MVC أدناه.

  • تمثل وحدة التحكم الطبقة التي تحتوي على منطق الأعمال. تقوم أحداث المستخدم بتشغيل الوظائف المخزنة داخل وحدة التحكم الخاصة بك. أحداث المستخدم هي جزء من وحدة التحكم.
  • يتم استخدام طرق العرض لتمثيل طبقة العرض التقديمي المقدمة للمستخدمين النهائيين.
  • تُستخدم النماذج لتمثيل بياناتك. يمكن أن تكون البيانات في النموذج بسيطة مثل مجرد وجود إعلانات بدائية. على سبيل المثال، إذا كنت تدير تطبيقًا للطلاب، فقد يحتوي نموذج البيانات الخاص بك على معرف طالب واسم فقط. أو قد يكون معقدًا أيضًا من خلال وجود نموذج بيانات منظم. إذا كنت تدير تطبيقًا لملكية السيارة، فيمكنك الحصول على هياكل لتحديد السيارة نفسها من حيث سعة محركها وسعة المقاعد وما إلى ذلك.

46) ما هو دور MVC في AngularJS؟

فيما يلي تعريف بسيط لكيفية عمل AngularJS Controller.

  • المسؤولية الأساسية لوحدة التحكم هي التحكم في البيانات التي يتم تمريرها إلى العرض. النطاق والعرض لهما اتصال في اتجاهين.
  • يمكن لخصائص العرض استدعاء "الوظائف" في النطاق. علاوة على ذلك، يمكن للأحداث في العرض استدعاء "الطرق" في النطاق. يقدم مقتطف الكود أدناه مثالاً بسيطًا للوظيفة.
    • الوظيفة($scope) التي يتم تعريفها عند تعريف وحدة التحكم والوظيفة الداخلية التي تُستخدم لإرجاع تسلسل $scope.firstName و$scope.lastName.
    • في AngularJS، عندما تقوم بتعريف دالة كمتغير، فإنها تُعرف باسم الطريقة.

  • تمر البيانات بهذه الطريقة من وحدة التحكم إلى النطاق، ثم تنتقل البيانات ذهابًا وإيابًا من النطاق إلى العرض.
  • يتم استخدام النطاق لتعريض النموذج للعرض. يمكن تعديل النموذج عبر الطرق المحددة في النطاق، والتي يمكن تشغيلها عبر الأحداث من العرض. يمكننا تحديد ربط النموذج ثنائي الاتجاه من النطاق إلى النموذج.
  • لا ينبغي استخدام وحدات التحكم بشكل مثالي للتلاعب بـ DOM. يجب القيام بذلك من خلال التوجيهات، والتي سنراها لاحقًا.
  • أفضل الممارسات هي أن يكون لديك وحدات تحكم تعتمد على الوظيفة. على سبيل المثال، إذا كان لديك نموذج للإدخال وتحتاج إلى وحدة تحكم لذلك، فقم بإنشاء وحدة تحكم تسمى "وحدة تحكم النموذج".

47) كيفية بناء وحدة تحكم أساسية في AngularJS

مقتطف الكود أدناه عبارة عن صفحة HTML بسيطة تحمل عنوان "تسجيل الأحداث" وتحتوي على إشارات إلى مكتبات مهمة مثل Bootstrapومسج والزاوي.

  1. نحن نضيف مراجع إلى أوراق أنماط bootstrap CSS، والتي سيتم استخدامها مع مكتبات bootstrap.
  2. نقوم بإضافة مراجع إلى مكتبات AngularJS. والآن، كل ما سنفعله مع angular.js من الآن فصاعدا سيتم الرجوع إليه من هذه المكتبة.
  3. نقوم بإضافة مراجع إلى مكتبة bootstrap لجعل صفحة الويب الخاصة بنا أكثر استجابة لعناصر تحكم معينة.
  4. لقد أضفنا مراجع إلى مكتبات jquery التي سيتم استخدامها لمعالجة DOM. هذا مطلوب بواسطة Angular لأن بعض الوظائف في Angular تعتمد على هذه المكتبة.

افتراضيًا، سيكون مقتطف الكود أعلاه موجودًا في جميع الأمثلة لدينا حتى نتمكن من عرض كود angularJS المحدد فقط في الأقسام اللاحقة.

ثانيًا، دعونا نلقي نظرة على ملفاتنا وبنية الملفات التي سنبدأ بها في الدورة التدريبية:

  1. أولاً، نقوم بفصل ملفاتنا إلى مجلدين كما هو الحال مع أي تطبيق ويب تقليدي. لدينا المجلد "CSS". سيحتوي على جميع ملفات أوراق الأنماط المتتالية، وبعد ذلك سيكون لدينا مجلد "lib" الخاص بنا، والذي سيحتوي على جميع ملفاتنا Javaسيناريو الملفات.
  2. يتم وضع ملف bootstrap.css في مجلد CSS، ويتم استخدامه لإضافة مظهر ومظهر جيد لموقعنا على الويب.
  3. angular.js هو ملفنا الرئيسي الذي تم تنزيله من موقع angularJS وحفظه في مجلد lib الخاص بنا.
  4. سيحتوي ملف app.js على الكود الخاص بنا لوحدات التحكم.
  5. يتم استخدام ملف bootstrap.js لتكملة ملف bootstrap.cs لإضافة وظيفة bootstrap إلى تطبيق الويب الخاص بنا.
  6. سيتم استخدام ملف jquery لإضافة وظيفة معالجة DOM إلى موقعنا.

مثال على استخدام angular.js:

ما نريد فعله هنا هو فقط عرض الكلمات "AngularJS" بتنسيق نصي وفي مربع نص عند عرض الصفحة في المتصفح.

<!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) ما هو استخدام ng-controller في الملفات الخارجية في AngularJS

قم بتنفيذ الخطوات التالية لاستخدام ng-controller في الملفات الخارجية في AngularJS

الخطوة 1) في ملف app.js، أضف الكود التالي لوحدة التحكم الخاصة بك

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

الخطوة 2) الآن، في ملف Sample.html الخاص بك، قم بإضافة فئة div التي ستحتوي على توجيه ng-controller ثم قم بإضافة مرجع إلى متغير العضو "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) كتابة التعليمات البرمجية لتحديد الأساليب في وحدة تحكم AngularJS؟

فيما يلي رمز لتحديد الأساليب في وحدة تحكم AngularJS:

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

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

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

50) كتابة التعليمات البرمجية باستخدام نموذج ng لعرض التحكم في الإدخال متعدد الأسطر في AngularJS.

فيما يلي رمز يستخدم ng-model لعرض التحكم في الإدخال متعدد الأسطر في AngularJS:

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

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

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

</body>
</html>

51) كتابة التعليمات البرمجية لتوضيح استخدام عناصر الإدخال.

فيما يلي مثال للتعليمات البرمجية باستخدام عناصر الإدخال AngulaJS:

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

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

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

</body>
</html>

52) كيف يمكنك إنشاء نموذج في PHP؟

فيما يلي رمز لإنشاء نموذج في PHP:

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

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

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

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

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

53) لماذا نستخدم PHP MVC Framework؟

يجب عليك استخدام إطار عمل PHP MVC لأنه يبسط العمل مع التقنيات المعقدة من خلال:

  • إخفاء كافة تفاصيل التنفيذ المعقدة
  • توفير الأساليب القياسية التي يمكننا استخدامها لبناء تطبيقاتنا.
  • زيادة إنتاجية المطورين، وذلك لأن التنفيذ الأساسي للأنشطة مثل الاتصال بقاعدة البيانات، وتعقيم مدخلات المستخدم، وما إلى ذلك، قد تم تنفيذه جزئيًا بالفعل.
  • الالتزام بمعايير الترميز المهنية

54) ما هي أطر عمل PHP MVC الشائعة؟

فيما يلي أطر عمل PHP MVC الشائعة:

Codeأنبوب: إنها واحدة من أطر PHP MVC الأكثر شعبية. إنها خفيفة الوزن ولها منحنى تعليمي قصير. يحتوي على مجموعة غنية من المكتبات التي تساعد في بناء مواقع الويب والتطبيقات بشكل سريع. يمكن أيضًا للمستخدمين ذوي المعرفة المحدودة ببرمجة OOP استخدامها.

كوهانا: هو إطار عمل هرمي لعرض النماذج والتحكم (HMVC)، وهو إطار عمل آمن وخفيف الوزن. يحتوي على مجموعة غنية من المكونات لتطوير...ping التطبيقات بسرعة.

للكيك: تم تصميمه على غرار Ruby on rails. وهو معروف بمفاهيم مثل أنماط تصميم البرامج، والاتفاقيات بدلاً من التكوين، وActiveRecord، وما إلى ذلك.

زند: إنه إطار قوي؛

  • آمنة وموثوقة وسريعة وقابلة للتطوير
  • يدعم الويب 2.0 وإنشاء خدمات الويب.

ويتميز بواجهات برمجة التطبيقات من البائعين مثل Amazon, Google, Flickrياهو، إلخ. إنه مثالي للتطويرping تطبيقات الأعمال.


55) كيف يمكنك إنشاء طرق عرض في PHP؟

فيما يلي رمز لإنشاء طرق العرض في PHP:

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

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

لنقم الآن بإنشاء صفحة النتائج 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>

ستساعد أسئلة المقابلة هذه أيضًا في حياتك (شفهي)

تلخيص هذه التدوينة بـ: