ما هو الفرق بين Framework و CMS ؟
العديد من المبتدئين الذين ولجوا لتوهم أو ينوون ولوج عالم تطوير برمجيات الويب يسألون عن الفرق بين إطار العمل Framework ونظام إدارة المحتوى CMS (ووردبريس كمثال). هذا الخلط الذي يقعون فيه راجع إلى قلة الخبرة في المجال من جهة والرغبة في معرفة كل صغيرة وكبيرة من جهة أخرى، وهذا شيء رائع وجميل لأن السؤال أولى خطوات المعرفة والإنسان الذي يسأل ويتساءل أكثر هو الذي يتعلم بصورة أفضل.
نظام إدارة المحتوى Content Management System
أنظمة إدارة المحتوى في تطبيقات الويب عديدة ومتنوعة لعل أشهرها ثلاثة :
- ووردبريس
- دروبال
- جوملا
هذه الأنظمة جاءت بوظائف واختصاصات جاهزة للإستعمال، وتكون قابلة للتخصيص حسب متطلبات كل مستخدم عن طريق نظام القوالب (Themes, Templates) والإضافات (Plugins, Modules). مثلا ووردبريس جاء بنظام متكامل لإنشاء مدونة احترافية حيث يعطينا افتراضيا لوحة تحكم جاهزة مع إمكانية:
- نشر مقالات
- إنشاء صفحات
- نظام تعليقات جاهز
- قوالب جاهزة واحترافية
- إنشاء قوائم Menus
- إلخ…
يتم اللجوء عادة لأنظمة إدارة المحتوى عندما يطلب العميل مشروعا بوظائف مطابقة لحد كبير لما هو متوفر في أنظمة إدارة المحتوى، وهذه التطبيقات تكون عادة تطبيقات صغيرة إلى متوسطة الحجم، فكلما كان حجم المشروع كبيرا إزدادت الحاجة إلى التخصيص وبالتالي تصبح وظائف نظام إدارة المحتوى الإعتيادية غير قادرة على تلبية حاجيات المطور.
إطار العمل Framework
إطار العمل هو مجموعة من الكلاسات والمكتبات مترابطة فيما بينها بهدف إنشاء بيئة جاهزة للتطوير (وليس للإستخدام النهائي). إطارات العمل بدورها عديدة وكل لغة برمجة إطارات العمل الخاصة بها ومن أكثرها شهرة واستعمالا نجد لارافيل وسيمفوني لمطوري PHP ويمكن أن نذكر كذلك إطار العمل Ruby On Rails الخاص بلغة البرمجة روبي.
يمكن القول أن إطار العمل وضع ليكون في خدمة المطور لإنشاء تطبيقات إحترافية على أساس قوي منظم، بينما أنظمة إدارة المحتوى طورت لتكون في متناول المستخدم العادي لإدارة المحتوى الخاص بموقعه دون الحاجة للبدء من الصفر.
يلجأ المطورون عادة لإطارات العمل في المشاريع التي تحتاج وظائف خاصة لا توفرها أنظمة إدارة المحتوى أو ربما يطلب منك العميل تطوير المشروع بإطار عمل معين وذلك لأسباب عدة مثل خطة توسعية مستقبلا للمشروع قد لا تتلاءم مع إمكانات نظام إدارة المحتوى المحدودة. من ناحية السعر والتكلفة فالمشاريع التي تطور بإطارات العمل تكون عادة أغلى وأكثر كلفة.
إذن اختيار أي من النظامين أفضل يعتمد على نوعية المشروع وكذلك اعتبارات أخرى موضوعية تتعلق بالعميل نفسه ومخططاته وربما يلعب المطور دورا جديا في إقناع العميل المتردد بتقنية على حساب أخرى وهذا موضوع آخر يلعب فيه حسن التواصل والمعرفة الشاملة بكل تقنية على حدة دورا هاما.