اذهب إلى المحتوى
  • 0

هل هناك فرق بين OOP و Data Access Layer و MVC في ASP.NET؟

عبدالله الناصري

السؤال

Recommended Posts

  • 0

وعليكم السلام ورحمة الله.

الفروق كثيرة بسبب اختلاف مكان كل منها من حيث المفاهيم والاستخدام.

OOP: مفهوم البرمجة الكائنية، عبارة عن مفاهيم عامة في طريقة تمثيل البيانات، وارتباطها مع بعضها البعض. عملية انشاء كلاس هي العملية الاساسية في OOP.

Data Access Layer: المقصود بها فصل العمليات المتعلقة بالتواصل مع قاعدة البيانات (عمليات القراءة والتعديل والحذف وغيرها)، ووضعها في طبقة مستقلة، خلافات لبعض التطبيقات التي يتم دمج كود الاتصال مع قاعدة البيانات مع كود الواجهات، وهو ما يصعب عملية التطوير واكتشاف الاخطاء.

MVC: نمط تصميم غير مرتبط ب ASP.NET فقط، بل موجود بكل التقنيات (مثل PHP وحتى Android)، لكن ضمن بيئة ASP.NET فيعتبر بديل ب Web Forms، وهو نمط جميل في تطوير تطبيقات الويب على ASP.NET MVC، ويقوم على فصل التطبيق إلى ثلاث اقسام رئيسية.

Model: وهو يمثل هيكيلة البيانات وطبقة Data Access Layer، وما يسمى ب Business Logic، فهو بالتالي غير مرتبط بنوع تطبيقك سواء كان ويب او غيره.

View: عبارة عن ألية العرض ل Model، بحيث نقوم بتمرير Model ل View معينة لتقوم بدروها بتوليد HTML المناسب، والذي سيتم ارسالة لاحقا للمستخدم.

Controller: هو الرابط بين Model و View، فهوم يقوم بتلقي الطلبات من المستخدم (مثل طلب عنوان ويب معين، يقوم ال Controller بمعالجة هذا الطلب)، ثم يقرر ما النتيجة المطلوبة، هل هي صفحة HTML، او تنزيل ملف معين، أو Web Api وغيرها. بالتالي ليس من مهمة Controller العمليات البرمجية الحسابية او التواصل مع قاعدة البيانات، هو فقط وسيط، يأخذ البيانات من View ويمررها ل Model والذي سيقوم بالمطلوب، او يقرأ البيانات من Model معين ويقوم بتمرريها ل View لتقوم برسمها بشكل HTML.

 

أخيراً أود القول: ان المفاهيم السابقة ليست حكرا على بيئة الدوت نت أو اي لغة برمجة أخرى، هي مفاهيم اساسية مع غيرها من المفاهيم، وهو ما يشكل ما يمسى ب هندسة البرمجيات.

مفاهيم اخرى يمكن التعمق بها، على سبيل المثال وليس الحصر:

Design Patterns

Separation of Concerns

Dependency Injection

Parallel Programming - Multi-threading

 بالتوفيق،،،

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...