مقاله های بسیاری در خصوص سیستم های مدیریت محتوا و فریمورک ها ( یا چارچوب ها ) بحث می کنند. کدام یک را انتخب نماییم؟ کدامیک بهترین است؟
با این حال ما در وب سایت وانیا قصد دارم از یک زاویه کاملاً متفاوت مقاله ای بنویسیم تا یکبار برای همیشه پاسخی جامع به مخاطبان خود دهیم. در ابتدا می خواهیم مطمئن باشیم که امروزه توسعه دهندگان و مشتریان، تفاوت میان واژگان "سیستم مدیریت محتوا" و "فریمورک" را درک می کنند.
البته پیش از این در مقاله ای به بررسی سیستم مدیریت محتوا پرداخته ایم که می توانید مطالعه نمایید.
زمانی که از واژه "فریمورک" استفاده می کنیم، بیشتر در خصوص چارچوب برنامههای کاربردی تحت وب صحبت میکنیم. چارچوب برنامههای کاربردی تحت وب به سادگی بر پایه کد نویسی هستند. در صورتی که شما یک برنامه نویس و یا توسعه دهنده وب و عاشق کد نویسی هستید، معمولاً برای پروژههای خود چارچوب برنامههای کاربردی تحت وب را انتخاب میکنید.
CMS یک چارچوب مدیریت محتوا است و بیشتر مبتنی بر ماژولها است تا کد. هر شخصی میتواند یک سیستم مدیریت محتوا را مدیریت کند چرا که نیازی به دانش برنامه نویسی و کد نویسی ندارد. البته که برنامه نویسان نیز میتوانند CMS را انتخاب کنند زیرا میتوانند کارشان را سریعتر انجام دهند.
Open Source اساساً به چیزی اطلاق میشود که امکان ویرایش و اشتراکگذاری آن برای همه فراهم است زیرا طراحی آن در دسترس عموم مردم قرار دارد. این اصطلاح، در توسعهٔ نرمافزار و ایجاد یک روش خاص در تولید برنامههای کامپیوتری ریشه دارد؛ با این حال، امروزه اصطلاح اپنسورس مجموعهای از مرزها و ارزشها را تعریف میکند که در مجموع رویکرد اپنسورسی نامیده میشوند. در پروژهها، محصولات و نوآوریهای اپنسورس، اصولی همچون تبادل باز، مشارکت چندجانبه، ساخت سریع نمونهٔ اولیه (MVP)، شفافیت و توسعهٔ جامعهمحور رعایت شده و مورد احترام قرار میگیرند.
عموم سیستم های مدیریت محتوا مانند وردپرس ، جوملا، دات نت نیوک، دروپال و ... اوپن سورس هستند. یعنی هرشخص برنامه نویس در هرجای دنیا می تواند این سیستم ها را توسعه دهد. ماژول یا کامپوننت بنویسد. کمتر پیش می آید که هسته ی اصلی را کسی به غیر از تیم اصلی و سازنده ، تغییر دهد
در مورد اینکه سیستم مدیریت محتوا و چارچوب چه کارهایی انجام میدهند، سوء تفاهمهای بسیاری وجود دارد. یعنی مانند بسیاری از مفاهیم علمی ، بین علما اختلاف نظر می باشد! بسیاری از طرفدارانی که از CMS استفاده می کنند میگویند
با CMS ما هر کاری را میتوانیم انجام دهیم
و طرفداران فریمورک ها میگویند
خیر، ما می توانیم هر کاری را با فریمورک هایی که خود به صورت اختصاصی کدنویسی کرده ایم، انجام دهیم
و غیره ...
به عنوان یک طرفدار چارچوب، من نیز اینچنین عقیده ای دارم اما در حقیقت این موضوع صحیح نیست! حقیقت این است که ما از یک ساختار یکسان استفاده مینماییم (PHP، RoR، python، .Net و غیره)، همه ما میتوانیم هر کاری را انجام دهیم. حتی این افسانه که سیستم مدیریت محتوا از یک ساختار خوب استفاده نمیکند، حقیقت ندارد.
برای مثال، Drupal 8 بر پایه چارچوب Symfony است، که یک چارچوب برنامه کاربردی تحت وب مبتنی بر شیء گرایی بسیار خوب است.
امروزه سیستم مدیریت محتوا محبوب تر از فریمورک برنامه کاربردی تحت وب است چرا که واقعاً استفاده از آن آسان و ساده است. حتی اگر شما دانش برنامه نویسی نداشته باشید، میتوانید با استفاده از یک CMS، یک وبسایت کامل را بسازید. بنابراین کدامیک را انتخاب نماییم؟
با توجه به تجربیات شخصی من، پیش از انتخاب یک چارچوب و یا یک CMS، همواره می بایست در خصوص 4 سوال اساسی زیر فکر کنید:
برای مشتری واقعاً مهم نیست که شما از چه ابزاری استفاده میکنید. آنچه برای آنها اهمیت دارد این است که کارشان تمام شود. بنابراین بیایید مثالی را عنوان کنیم.
من انتخاب های خود را در خصوص دو پروژه شخصی و یک پروژه معمولی توضیح خواهم داد.
این وب سایت شخصی من است : www.farjadp.com. اول از همه من یک توسعه دهنده وب که مسلط به زبان برنامه نویسی دات نت هستم، بنابراین می توانم هم چارچوب .NET و هم سیستم مدیریت محتوای NET را انتخاب کنم. از طرفی به واسطه ی سابقه ی بیش از پانزده سال طراحی وب به زبان های دیگری مانند. PHP نیز تا حدودی تسلط دارم و قاعدتا با توجه به نیاز بازار تسلط بیشتری به سیستم های مدیریت محتوای جوملا و وردپرس ( که هر دو بر پایه ی زبان برنامه نویسی PHP می باشند ) دارم.
بنابراین برای این وب سایت شخصی خودم را بر پایه ی وردپرس راه اندازی نمودم . چرا؟
اما یک چیز دیگر را باید در نظر بگیریم. در زیر به بررسی وب سایت کنونی می پردازم
برای سایت شرکت طراحی وب سایت وانیا ( چیزی که الان مشاهده می کنید ) من از چارچوب MVC.Net استفاده کردم چرا که
خیلی بد نیست که هم برنامه نویسی بلد باشید و هم اهل CMS باشید. چیز بدی که در این خصوص وجود دارد این است که اشخاص بسیاری هستند که با CMS کار میکنند و هیچ دانش برنامه نویسی ندارند و فکر میکنند که با CMS میتوانند هر کاری بخواهند انجام دهند. این نیز افسانه است! زمانی که قبلاً گفتم با CMS میتوانید هر کاری را انجام دهید، به این بستگی داشت که شما کمی از مهارتهای پایه برنامه نویسی را بلد باشید. در غیر این صورت، شما تا جایی میتوانید هر کاری را انجام دهید که برنامه نویسان/توسعه دهندگان وب به شما اجازه دهند. بنابراین ایده من این است که در صورتیکه با CMS کار میکنید و هیچ دانش برنامه نویسی ندارید، بهتر است که شروع به یادگیری برخی مفاهیم پایه و بنیادی نمایید و تلاش کنید پلاگینهای سفارشی خود را برای CMS بسازید.
بنابراین برای جمع بندی میبایست بگویم که همواره بستگی به آن چیزی دارد که میخواهید انجام دهید و اینکه چه میزان زمان و فرصت برای انجام آن دارید. من معتقدم که هر ابزاری برای یک دلیلی ساخته شده است (سیستمهای مدیریت محتوا و فریمورک ها) و در نتیجه شما به عنوان یک توسعه دهنده حرفهای منعطف هستید. بنابراین ارزشش را ندارد که طرفدار CMS و یا چارچوب باشید. فقط بهترین ابزار را برای موقعیت خود انتخاب کنید و کار تمام است.