PDA

View Full Version : فرق بین CMS و FRAMEWORK



Mohammadxml
یک شنبه 23 تیر 1392, 00:31 صبح
با سلام به همه ی برنامه نویسان تالار php.
ببخشید میخواستم بدونم فرق بین cms و framework در چیست؟

MMSHFE
یک شنبه 23 تیر 1392, 09:33 صبح
CMS یعنی سیستم مدیریت محتوا. مثل جوملا و وردپرس و... که به شما کمک میکنه بتونید بدون کدنویسی یک سایت آماده داشته باشین و درصورت نیاز، با کمی کدنویسی، یک افزونه برای اون CMS طراحی کنید ولی فریمورک خیلی گسترده تر هست و به شما کمک میکنه توی چهارچوب خاصی، کدنویسی کنید و خودتون یک CMS بسازین و با بقیه اعضای تیم برنامه نویسی، بصورت هماهنگ کار کنید.

Mohammadxml
یک شنبه 23 تیر 1392, 19:37 عصر
سلام.شرمنده من اول با cms شروع کنم یا framework ؟
با کدوم cms یا کدوم framework شروع کنم؟

MRmoon
یک شنبه 23 تیر 1392, 20:46 عصر
منظورتون از اين كه

سلام.شرمنده من اول با cms شروع کنم یا framework ؟
با کدوم cms یا کدوم framework شروع کنم؟

چيه؟

Mohammadxml
یک شنبه 23 تیر 1392, 22:27 عصر
منظورم اینه اول با وردپرس(cms) شروع کنم یا yii (فریم ورک).

mtnam1372
یک شنبه 23 تیر 1392, 22:42 عصر
سلام
ببین عزیزم از نحوه سوالت معلومه هنوز برنامه نویسی نکردی.

شما اول باید html
و بعد یه زبان سمت سرور مثل php رو یاد بگیری

که اموز های php اقای شهرکی خوبه

اموزش html هم یه سرچج بزنی فت و فراوان

اوکی مهربون؟

AliRezaPro
یک شنبه 23 تیر 1392, 23:05 عصر
شما سعی کنید فعلا خود php رو یاد بگیرید . جناب شهرکی آموزش هایی رو بصورت PDF تو تالار قرار دادند . شما پس از خودنون این کتاب ها و مقاله و همینطور کسب تجربه وصحبت های بچه های همین فروم به خیلی از سئوال های خودتون پی می برید. پس از خوندن این کتاب ها و سعی و تلاش و پیدا کردن مهارت های لازم, هم میتونید تحت یک cms (مانند سیستم مدیریت محتوای Wordpress که به صورت OpenSource هم هست ) کد نویسی کنید و از پلاگین های موجود در اینترنت بهره ببریید و یا اینکه خودتون براش پلاگین بنویسید . یا اینکه خودتون یک cms بنویسید
شما پس یاد گیری این زبان میتونید تحت یک framework کدهاتونو بنویسید که درواقع این فریم ورک ها شما رو مجبور به زعایت اصول و قواعد خودشون میکنن که ترجیحا خیلی ها مثل بنده به دنبال کدنویسی به صورت خام هستند
منظور از php خام یعنی اینکه از framework ی برای کدنویسی بهره نبرید و کدهاتو تو یک ide (مانند PhpDesigner ) بنویسید. امیدوارم به طور کلی متوجه شده باشید . فعلا زوم شما فقط رو یادگیری خود php باشه.

Mohammadxml
یک شنبه 23 تیر 1392, 23:34 عصر
من میخوام مثل net. کارها mvc رو تحت فریم ورک مایکروسافت (ms dotnet freamwork ) یاد بگیرم.
به همین خاطر میخوام از فریم ورک استفاده بکنم.

AliRezaPro
یک شنبه 23 تیر 1392, 23:42 عصر
ببینید این 2 مفهموم فریم ورک کاملا یا هم متضادند . کلا تمامیه کارها در دانت توسط فریم ورک اون هست و تمامیه تابع های آن فقط در فریم ورک هست و شما جایی نمیتونید برنامه تون رو بالا بیارید که دات نت فریم ورک نصب نباشه .
اما این فریم ورک های موجود برای php اون مفهوم فریم ورک در دات نت رو نداره .
شما بدون فریم ورک در php هم میتنوید کد های خوب و دلخواهتون رو بنویسید در صورتی که بدون .Net Framework در Asp.Net هیچ کاری نمیتونید بکنید .
فریم ورک های php درواقع همان php خام هستند که فقط شما رو ملزم به رعایت یه سری کارها میکنه و علاوه بر اون یه سری تابع و کلاس های اضافه هم تو اون هست که شاید کارتون رو سریع تر بتونید انجام بدید

MMSHFE
دوشنبه 24 تیر 1392, 09:11 صبح
NET Framework. چه ربطی به PHP داره؟ اگه بخواین از اون استفاده کنید، باید از ASP.NET استفاده کنید. فریمورک در PHP یک ابزاره که با خود PHP معمولی نوشته شده و بصورت یک کتابخانه از توابع هست که به شما کمک میکنه کدتون رو سریعتر و استانداردتر بنویسید و در استفاده از اون هیچ اجباری ندارین و بدون اون هم میتونید سایتهای خیلی بزرگ بسازید یا حتی برای کارهای خودتون، یک فریمورک اختصاصی بسازید ولی در NET. استفاده از NET Framework. اجباریه نه یک انتخاب و بدون اون، نمیتونید حتی یک خط کد بنویسید که درست کار کنه. یعنی اگه روی سیستمی، NET Framework. نصب نباشه، برنامه شما اجرا نمیشه. این مسئله هم خودش به نوعی محدودیت اجرا میکنه چون کد شما دیگه فقط روی ویندوز اجرا خواهد شد. شما در PHP تعداد زیادی Framework دارین که استفاده از اونها اختیاریه (مثل ZendFramework و CodeIgniter و CakePHP و YiiFramework و Symphony و...) ولی توی NET. همونطور که گفتم، استفاده از NET Framework. اجباریه (اصلاً پسوند NET. توی ASP.NET هم همین مسئله رو میگه). حالا بعضیها اومدن و یکسری فریمورکهای اختیاری درست کردن (مثل Entity) که مجبور نیستین حتماً از اونها توی پروژه استفاده کنید و مفهومی شبیه فریمورکهای PHP دارن ولی خود همین فریمورکها هم با NET Framework. نوشته شدن و باز هم نیازمند فریمورک اصلی مایکروسافت هستین.

Mohammadxml
دوشنبه 24 تیر 1392, 18:45 عصر
سلام جناب شهرکی.در پست بالا نگفتین اگه خواستم با cms یا framework کار کنم اول با کدوم شروع کنم؟
منظورم این بود که net. کارها تکلیفشون معلومه ویژوال استودیو رو نصب می کنن و شروع به کار میشن ولی توی php اول اینکه نحوه کار با framework به سادگی net. نیست.
واینکه میگین بدون فریم ورک هم میتونید سایتهای خیلی بزرگ بسازید.اگه ما بخواهیم کدهای خودمون رو بدون فریم ورک بنویسیم انگار یکی اون رو نوشته و ما داریم دوباره کاری می کنیم( در استفاده از توابع و کلاس هاو...).
و اینکه میگین برای کارهای خودتون، یک فریمورک اختصاصی بسازیم فریم ورکی که ما مینویسیم هیچ موقع به فریم ورک های خارجی که دارن با هم رقابت میکنن نمیرسه.

MMSHFE
سه شنبه 25 تیر 1392, 08:29 صبح
سلام جناب شهرکی.در پست بالا نگفتین اگه خواستم با cms یا framework کار کنم اول با کدوم شروع کنم؟
منظورم این بود که net. کارها تکلیفشون معلومه ویژوال استودیو رو نصب می کنن و شروع به کار میشن ولی توی php اول اینکه نحوه کار با framework به سادگی net. نیست.[QUOTE]
دوست عزیز، برای هر پروژه، نیازمندیهای همون پروژه است که مشخص میکنه از چه فریمورکی استفاده کنید یا اصلاً از فریمورک استفاده بشه یا CMS بهتره؟ اما چون توی NET. در اکثریت قری به اتفاق پروژه ها، یک انتخاب بیشتر نداریم، طبیعتاً مسئله انتخاب فریمورک منتفیه.
[QUOTE]واینکه میگین بدون فریم ورک هم میتونید سایتهای خیلی بزرگ بسازید.اگه ما بخواهیم کدهای خودمون رو بدون فریم ورک بنویسیم انگار یکی اون رو نوشته و ما داریم دوباره کاری می کنیم( در استفاده از توابع و کلاس هاو...).
و اینکه میگین برای کارهای خودتون، یک فریمورک اختصاصی بسازیم فریم ورکی که ما مینویسیم هیچ موقع به فریم ورک های خارجی که دارن با هم رقابت میکنن نمیرسه.
کی گفته کدنویسی بدون فریمورک یعنی دوباره کاری؟ اگه اینطوری باشه که همه برنامه نویسها دارن دوباره کاری میکنن! اتفاقاً استفاده از فریمورک بیشتر به دوباره کاری میخوره چون بدون فریمورک، شما دارین با ابزارهای خود زبان برنامه نویسی استفاده میکنید ولی با کمک فریمورک، شما از یک ابزار واسط که خودش داره از زبان اصلی قدرت میگیره استفاده میکنید. این مسئله هم تا جایی که کارآیی سیستم رو کاهش نده و توی سرعت توسعه و همکاری تیمی ارتقاء ایجاد کنه، مشکل خاصی نیست. ضمناً این دید که بگیم فریمورکهایی که خودمون مینویسیم هیچ موقع به فریمورکهای خارجی نمیرسن رو هم ابداً نمیپسندم و این طرز فکر ناشی از همون تلقینهایی هست که مدام به ما گفته شده که «شما نمیتونید». دوست عزیز، مغز ایرانیها رو دست کم نگیر. ازنظر ذهنی ثابت شده که یک ایرانی (و بعضاً هندیها) میتونن معادل دست کم 10 نفر اروپایی و امریکایی فکر کنن. یک سر به اتاقهای فکر سازمانهای بزرگی مثل گوگل و ناسا و زند و... بزنید (توی اینترنت بگردین) تا ببینید چند درصد کارکنان این بخش از سازمانهای مذکور، ایرانی هستن. اینکه بعضاً تنبلی میکنیم یا کار رو سرسری انجام میدیم، معناش این نیست که نمیتونم، معناش اینه که نمیخوایم. حالا اگه یه عده پیدا بشن که بخوان، قطعاً میتونن. همین الآن ما برای کارهای شرکت خودمون فریمورک اختصاصی نوشتیم که بی اغراق میتونم بگم قدرت Zend رو در کنار کارآیی Yii با هم داره و کدهاش هم با استفاده از HipHop کامپایل شده و توی پروژه ها از اون استفاده میکنیم. پس اگه بخوایم، میتونیم. موفق باشید.

Mohammadxml
سه شنبه 25 تیر 1392, 18:44 عصر
آخه برای استخدام حتما باید کار با یک cms و framework بلد باشیم.

parsboy
سه شنبه 25 تیر 1392, 18:51 عصر
آخه برای استخدام حتما باید کار با یک cms و framework بلد باشیم.
باسلام خوب دوست عزیزخیلی چیزها هست که بایدیادبگیرید اما قرارنیس همه چیز رو یک شبه یادبگیرید که!قدم قدم!
شما درابتدا باید php رویادبگیرید سپس میتونیدبایک cms و سپس با یک frame work بسته به نیازتون کارکنید.
موفق باشید.

Yuness Mehdian
جمعه 25 مرداد 1392, 03:18 صبح
با سلام . با اینکه یک ماهی از استارت این تاپیک میگذره ولی مطالبی رو جاهایی خوندم که به نظرم جالب و مرتبط با موضوع هست و میتونه مکمل صحبتهای اساتید باشه .

امروزه برنامه نویسی تحت وب به زبان php به شدت گسترده شده و سیستم های open source مختلفی منتشر شدن که هر کدوم دانش و تجربه ی خاص خودشون رو می طلبن . در جواب این سوال که باید از کدوم شروع کرد cms یا framework باید گفت که هیچ کدوم انتخاب اشتباهی نیست ولی فاکتور های زیادی در این انتخاب دخیل هستند . البته طبق گفته ی اساتید شما میتونید php خام هم بنویسید . مساله ای که مهمه اینه که همه ی این سیستم ها در نهایت توسط php خام پیاده سازی شدن و ته تهش یه کد php کار رو تموم می کنه و این سیستم ها فقط واسه راحتی برنامه نویس و امنیت و استفاده مجدد از کد و هزار دلیل دیگه بوجود اومدن . یه برنامه نویس خوب کسیه که اینها رو از هم جدا کنه و level بندی کنه .

level بندی از نظر یه برنامه نویس بد (:لبخندساده:) :

level 0 : در این سطح شما فقط از php خام استفاده می کنید و مستقیما و بدون هیچ واسطی شروع به کدنویسی می کنید و کل پروژه رو به اتمام می رسونید که معایبش پیچیدگی کار و زمان زیاد توسعه و سختی استفاده مجدد از کد و ... هست و مزایاش هم شاید کارآیی باشه (چونکه کد بدون واسطه اجرا میشه) . البته ممکنه شما تجربه ی خیلی زیادی در همه ی جنبه های کدنویسی نداشته باشید و با یه الگوریتم ضعیف کارآیی رو داغون کنید !

level 1 : در این سطح شما از یک framework استفاده می کنید (zend,ci,yii,...) . در این حالت معمولا کدنویسی مشکل تر هست و شما باید از یک سری قوانین تبعیت کنید (قوانینی که به نقع خودتونه) و در صورتی که تسلط کامل به api اون framework داشته باشید زمان توسعه بسیار کم میشه و میتونید با استفاده از module ها و ... از کدتون تو پروژه های بعدی استفاده کنید . وقتی از یک framework استفاده می کنید دستتون بازه و اگه بنا به دلایلی نمیخواید از بعضی توابع و کلاس های آماده اون framework استفاده کنید میتونید کتابخونه خودتون رو توسعه بدین و بهش اضافه کنید(که معمولا خودشون از اول خوب نوشتن و کمتر نیاز میشه این کار) .امنیت، سرعت توسعه زیاد، تمرکز بیشتر در پیاده سازی بهتر منطق نرم افزار، نظم، امکان کار تیمی و ... از مزایای این سطحه . و معایبش هم شاید پایین اومدن کارآیی و همون اجبار در تبعیت از قوانین دست و پا گیره . معمولا تو پروژه های بزرگ از یک framework شخصی یا عمومی استفاده میشه (به دلیل امکان کار تیمی و استفاده مجدد و...) . حالا این وسط شما میتونید بشینید یک framework حرفه ای بنویسید و تو پروژه هاتون ازش استفاده کنید که زحمت توسعه ی framework هم گردن خودتونه که این روش در صورتی توصیه میشه که تو شرکتتون نیروی انسانی کافی برای صرف وقت روی framework برای توسعه و نگه داری اون داشته باشید . در غیر این صورت توصیه میشه از عمومی ها استفاده کنید . یه framework بیشتر شبیه قطعات puzzle هست که اونا رو میتونید customize کنید و کنار هم بچینید و با سرعت زیاد پروژه رو تموم کنید . فلسفه ی وجودی framework ها جلوگیری از انجام dirty tasks یا کارهای اعصاب خورد کنه که همیشه هم بهشون نیاز دارید و framework ها سعی میکنن که برنامه نویس پروژه تمرکزش رو بزاره رو منطق نرم افزار تا انجام این dirty tasks ها تو هر پروژه .

level 2 : استفاده از سیستم مدیریت محتوا یا همون CMS . در واقع CMS پا رو فراتر از framework گذاشته و از سطح انتزاع بالاتری برخورداره و کاربران کم تجربه تر هم میتونن تو قالب این محیط ها پروژه بنویسن (مثلا wordpress که کابران زیادی داره) . در واقع میشه گفت که این سیستم ها framework های مهربونی هستند که زبون آدم سرشون میشه و کلیه کارها رو سعی میکنن آسون کنن . مثلا worpress رو وقتی نصب میکنید یه سایت کامل رو دارین فقط کافیه که قالب رو تغییر بدین و plugin نصب کنید و تمام . البته فراگیر شدن این سیستم ها به دلیل اینه که شما بازم دستتون بازه و میتونید همه چی رو طبق سلیقه خودتون تغییر بدین و کدی که شما دوست دارید اجرا بشه . مثلا تو wordpress باید بشینید plugin بنویسید و یه قابلیت به سایتتون اضافه کنید .

level 3 : اصلا کد نویسی رو فراموش کنید و برید بنگاه معاملات املاک یا ماشین بزنید سودش خیلی بیشتره باور کنید ! :گریه: (شوخی جدی)

نکته ی مهمی که من طبق تجربه ی خودم به اون رسیدم اینه که تو دنیای برنامه نویسی مخصوصا php راحتی در دل سختی بدست میاد . مثلا استفاده از یه framework میتونه خیلی کار شما رو راه بندازه و یه سایت تووپ حرفه ای بنویسید ولی به شرطه ها و شروطه ها !! شما اگه تجربه php خام نویسی نداشته باشید اصلا کم میارید تو این داستان و همون اولهاش گیر میکنید و اصلا قدم از قدم نمیتونید بردارید . چونکه customize نمیتونید بکنید و کتابخونه نوشتن بلد نیستید و خیلی چیزای دیگه که پیش شرط کار با framework هاست . یعنی اولش باید چند تا کار خام بزنید (حداقل واسه خودتون) و با مشکلات از نزدیک دست و پنجه نرم کنید بعدش از کار n ام به بعد برید سراغ framework ها . همچنین خوندن یه کتاب ساخت framework در کنار استفاده از یک framework رو شدیدا توصیه میکنم چونکه میفهمید کدتون در نهایت چطوری اجرا میشه و دانستن بهتر از ندانستن است !
در مورد cms هم که تکلیفش معلومه شما بازم دستتون بازه و زمان توسعه معمولا صرف نوشتن plugin میشه و برای پروژه های کوچیک خیلی خوبه (بستگی به cmsداره ، میگن jumla انعطاف پذیره و واسه پروژه های بزرگ هم فیته) .

پیشنهاد من : از level 0 شروع کنید و پروژه بزنید و بعدش برید level 1 و پروژه بزنید و بعدش برید level 2 و پروژه بزنید .هر سه تا رو تجربه کنید و باهاشون کار عملی بزنید . بعد n سال (بستگی به خودتون داره حدودا یک سال و نیم) که تجربه کار با هر سه روش رو دارید هزینه و زمان هر پروژه و خواست کارفرما (در صورتی که معقول باشه) رو بسنجید و یکی از روش ها رو انتخاب کنید . موفق باشید

torvic
یک شنبه 07 مرداد 1397, 22:21 عصر
سلام با این حساب میشود در کنار cms مثلا wordpress از فریم وورک yii استفاده کرد یا خیر ؟؟؟