مقایسه ASP.net و PHP

کدام یک بهتر است؟! این مساله دغدغه همیشگی ما آدم هاست در هر موضوعی میخواهیم بدانیم کدام بهتر است و کدام یک برای ما مناسب تر، کاراتر و به صرفه تر است. اما موضوع asp.net و php و مقایسه این دو تکنولوژی برنامه نویسی از مدت ها قبل شروع شده و همچنان ادامه دارد. علت پیچیدگی این موضوع بیشتر از آنجا نشات گرفته که اکثر برنامه نویسان فقط از یک تکنولوژی استفاده میکنند و به همان تسلط دارند، به همین دلیل تعصب شدیدی نیز روی آن دارند در صورتیکه اگر با هر دوزبان کار کرده باشند و اطلاعات خوبی نسبت به هر دو زبان داشته باشند تقریبا این مشکل برای همیشه برطرف خواهد شد و دیگر بحثی بین برنامه نویسان asp.net و php نخواهد بود. با کارناوب همراه باشید تا جواب خیلی از سوالات خود را در مورد این دو زبان بگیرید.


مقایسه ASP.net و  PHP

اگر تحقیقی سطحی در اینترنت درمورد مقایسه این دو پلتفرم انجام دهید متوجه خواهید شد که اکثر وبسایت ها مقالاتی خلاف واقع ارائه کرده اند و یا مطالبی بسیار قدیمی را به اشتراک گذاشته اند که دیگر صحت ندارد زیرا که در بحث تکنولوژی همه چیز به سرعت در حال بروزرسانی و تغییر است  و امروز این دو زبان از پویایی بالایی برخوردار هستند و کاربرد و امکانات بسیاری دارند.

یکی از موضوعاتی که تاکید زیادی روی آن شده استفاده سایت های بزرگی همچون facebook ، google، yahoo و .. از php است و در منابع دیگری این مطالب صراحتا تکذیب شده. واقعیت امر این است که این سایت ها به زبان ‌های دیگری نوشته شده و فقط در برخی از بخش های آن از php استفاده شده است.

ASP.net وPHP زبان های متداول برنامه نویسی تحت وب هستند که برای طراحی سایت های داینامیک به کار می‌روند. از نظر کاربردی هر دو توانایی تولید صفحات وب با طرح و قالبی مشابه را دارند اما اینکه کدام بهتر است مساله ای دیگر است و موارد زیادی را در بر می گیرد که در ادامه به بررسی این موارد می پردازیم.

سال ها پس از تسلط PHP به دنیای وب شرکت مایکروسافت با زبان ASP وارد دنیای برنامه نویسی شد. ورژن های اولیه ASPنقاط ضعف بسیاری داشت مثل پیچیدگی سینتکس و شباهت سینتکس های آن به زبان VBکه باعث زحمت برنامه نویسانی بود که به زبان CوC++ مسلط بودند و دوم اینکهASP فقط با اینترنت اکسپلورر درست کار میکرد. اما به مرور توانست ضعف های خود را اصلاح کند و پیشرفت زیادی دراین زمینه داشته باشد.

البته این نکته ناگفته نماند که این دو زبان تنها انتخاب شما نیستند و زبانهای دیگری مثل perl و ... هنوز جای خودشان را دارند و در خیلی از موارد به مراتب کارایی بیشتری نسبت به PHP و ASP دارند. پس در نهایت هر زبانی اگر در جای درست استفاده شود میتواند بهترین باشد.

 

اکنون به بررسی موردی PHP و ASP.net می پردازیم:

پشتیبانی از زبان های مختلف:

ASP.net  را با زبان های J sharp، Delphi ،C sharp و  VB.netو چند زبان دیگر می‌توان توسعه داد ولی php را فقط با زبانPHP میتوان نوشت. نکته دیگر این است که با ASP امکان تلفیق چند زبان را برای تولید وب سایت یا نرم افزار خود دارید.

 

شی گرائی:

PHP از ابتدا به عنوان یک زبان اسکریپتی ارائه شد ولی asp با مفهوم شی گرایی وارد عرصه شد.

امنیت در وب:

امنیت در وب یکی از دغدغه های مهم توسعه گران وب مستر هاست. .net  بصورت پیش فرض تدابیر امنیتی بسیاری برای جلوگیری از نفوذ هکرها به کار برده است.

  • امنیت سورس: در PHP چون فایل ها بصورت متن باز هستند یعنی هرکس که به سرور شما دسترسی پیدا کند می‌تواند کدهای شما را بخواند و یا تغییر دهد. اما در ASPکدها در قالب DLL هستند و دیده نمی شوند. البته نرم افزارهایی هست که به کمک آنها می توانید امنیت کدهای خود را تضمین نمایید ولی در حالت عادی امنیت ASP بیشتر است.
  • امنیت در برابر حملات خارجی: اگر نکات امنیتی و اصول استاندارد رعایت شود هر دو تکنولوژی از امنیت بالایی برخوردارند اما در حالت عادی امنیت ASP بیشتر است و بصورت پیش فرض جلوی خیلی از حملات را می گیرد.

محیط توسعه نرم افزار:

شرکت مایکروسافت چند نرم افزار قوی برای توسعه ASP فراهم کرده که شما را از هر نرم افزار دیگری بی نیاز می کنند و تمامی امکانات برای طراحی و تولید وبسایت درآن گنجانده شده است ولی PHP نرم افزار اختصاصی ندارد.

 

       سرعت:

  • سرعت در توسعه و پیاده سازی:  ASP با ارائه کنترل های قدرتمند وب و ارائه راهکارهای بهینه جهت ارتباط با بانک های اطلاعاتی تحولی عظیم در توسعه نرم افزارهای وب به وجود اورد. کنترل های ASP باعث افزایش سرعت توسعه وب تا 10 برابر شده است. ولی PHPنیاز به کدنویسی های فراوان دارد البته راهکار های ساده تری هم هست اما هیچکدام به سادگی ASP نیست.
  • سرعت در بارگذاری: asp یک زبان کامپایل شده است در صورتی که php یک زبان مفسری است. تمام کدهای asp پس از توسعه کامپایل شده و به Dll تبدیل می‌شوند ولی php بصورت کد بارگذاری شده و درهنگام اجرا تفسیر می شود. Asp دارای کنترل‌های زیادی است که به علت سادگی کاربران زیادی دارد اما این کنترل ها درهنگام Generate  شدن (تولید شدن) باید به کدهای Html تبدیل شود در صورتی که php به این صورت نیست و از کنترل های Html استفاده می کند. این مساله در لود شدن صفحه تاثیری ندارد زیرا Generate شدن در سرور انجام می شود و در حالتی که سخت افزار مناسبی استفاده شود این عمل در کسری از ثانیه انجام می شود. همچنین کاربران ASP میتوانند از کنترل های Html  استفاده کنند و محدودیتی برای آنان وجود ندارد.
  • view state در asp که موجب حفظ اطلاعات کنترل ها پس از postback می‌شود. یکی از دلایل کاهش سرعت در asp می‌باشد. البته این امکان برای کاربران وجود دارد که درصورت عدم نیاز آن را غیر فعال کنند اما برخی از برنامه نویسان به دلیل عدم اطلاع با کاهش سرعت مواجهند.

امکان فشرده سازی صفحات در php وجود داشته و اکثر توسعه گران با یک خط کدنویسی این کار را انجام می‌دهند. عمل فشرده سازی تا ده برابر حجم خروجی را کاهش داده و باعث افزایش سرعت لود صفحات می شود. درasp نیز این امکان وجود دارد ولی اکثر برنامه نویسان از آن بی اطلاعند.

نکته: حقیقت این است که اگر وبسایتی اصولی و استاندارد طراحی شود هیچ فرقی در سرعت asp  و php نیست. اما برای پروژه های حرفه ای انتخاب قطعی asp.net  است.

 

سورس باز:

یکی از مهم ترین مزایای php  سورس باز بودن آن است، این امر سبب شده است که بعضی از وبسایت های بزرگ برای توسعه سایتشان از php استفاده کنند. حتی سورس آن را به اقتضای نیاز خود تغییر بدهند و یا شخصی سازی کنند. گروه کارناوب پشتیبانی و نگه داری وب سایت را تضمین می کند و حتی سورس وب سایت را به کارفرما با دریافت هزینه واگذار کند . 

 

هزینه تکنولوژی و سایر هزینه های جانبی:

زبان PHP متن باز و رایگان است و تمام ابزار و نرم افزار های آن رایگان هستند ولیASP وابسته به شرکت مایکروسافت است و برای سایر نرم افزارهای آن نیز باید هزینه پرداخت شود.(البته این هزینه چندان زیاد نیست.)

  • هاست یا سرور:

هزینه سرورهای لینوکس نسبت به سرور های ویندوز کمتر است.

  • دیتابیس:

بانک اطلاعاتی my sql که با php کار می کند رایگان است و همینطور بانک های اطلاعاتی  MS Access و Server Express و MS SQL نیز به صورت رایگان ارائه شده اند و درکل هزینه راه اندازی یک وبسایت PHPکمتر عنوان می شود اما این هزینه بسیار ناچیز است.

 

سیستم عامل:

یکی از مزایای php این است که هم روی لینوکس نصب می شود و هم ویندوز. و البته به تازگی asp  نیز به لینوکس پیوسته و از این لحاظ نیز اکنون نسبت بهم برتری چندانی ندارند. پروژه ای بنام  mono این امکان را فراهم کرده است که شما بتوانید طراحی و توسعه سایت های خود را در محیط linux انجام دهید.

 

سهولت یادگیری:

  1. یک زبان متن باز و تفسیری ست. دستورات کوتاه و ساده دارد و مستقیم قابل اجراست. برای php حتی میتوانید از notepad استفاده کنید.
  2. asp نیز خیلی ساده است. با وجود زبانی به نام visual basic.netکد نویسی بسیار آسان شده است.. ورژن جدید visual studio امکانات جالبی برای ساده تر کردن کد ها فراهم کرده است. ویزارد هایی برای ارتباط با بانک اطلاعاتی که شمارا از نوشتن حتی یه خط کد بی نیاز میکند. برخی معتقدند برای یادگیری asp نیاز به دانش شی گرایی هست ولی در حقیقت برای شروع کار با asp هیچ نیازی به پیش زمینه شی گرایی و مفاهیم پیچیده ندارید. البته وبسایتی به نام www.asp.net با ارائه فیلم های آموزشی برای تمام سطوح پایه تا پیشرفته به صورت رایگان این امر را ساده تر نیز کرده است.

 

قدرت پایگاه داده:

این مورد نیز قابل بحث است چراکه هر دوی این زبان ها از هر پایگاه داده ای که بخواهند می توانند استفاده کنند. اما در حالت پیش فرض ASP با SQL Server کار می کند و PHP با MY SQL کار می کند که در این صورت پایگاه داده ASP سرعت و کارایی بالاتری دارد زیرا SQL Server قدرتمند ترین پایگاه داده جهان است.

 

تاثیر در سئو:

از نظر بهینه سازی موتور جستجو هیچ تفاوتی میان این دو تکنولوژی نیست و برنامه نویس باید به اصول بهینه سازی وبسایت آشنایی داشته باشد.

 

کاربرد و بازارکار:

برای اطلاع از این مورد فقط کافیست نگاهی اجمالی به صفحات نیازمندی روزنامه ها بیاندازید و در بخش استخدام برنامه نویس متوجه نیاز بسیاری ازشرکت های ایرانی به برنامه نویس و بیشتر برنامه نویس asp.net خواهید شد. و اگر شما قصد ادامه تحصیل و یا کار در کشورهای خارجی را داشته باشید بازهم همه جای دنیا موقعیت های شغلی مناسبی برای هر دو زبان وجود دارد. البته در بازارهای بین المللی تکنولوژی های متن باز PHP مشتری بیشتری دارند. ولی در ایران ASP به دلیل سرعت، کارایی و امنیت بالای خود توانسته سهم بیشتری از بازار را بخود اختصاص دهد.

 

پیشرفت و توسعه نرم افزار و بروز شدن آن:

از زمان ورود asp.net در سال 2002 تا کنون این زبان پیشرفت بسیاری کرده است. تسریع در امر توسعه تکنولوژی  ASPرا دگرگون ساخته است.هماهنگی aspو sql نیز باعث افزایش چشمگیر درخواست ها از این بانک اطلاعاتی و سهولت برنامه نویسی شده است. مایکروسافت درجهت ارتقا و توسعه تکنولوژی ASP اقدامات بی نظیری انجام داده که از MVC به عنوان یکی از مهم ترین آنها نام برد. (امروزه در ایران بهترین گزینه برای پروژه های تجاری ASP.net MVC می باشد. (ساده+قدرتمند+سریع))

 

چه زمانی استفاده از PHP بهتر است؟

  • اگر پروژه کوچک باشد و نیاز به ارتقا نداشته باشد.
  • اگر بودجه و زمان کم باشد.
  • اگر اسکریپت های آماده برای پروژه تان به زبان PHPوجود داشته باشد.
  • اگر  سرور شما لینوکس است.(البته الان ASPتوسط لینوکس نیز پشتیبانی می شود)

 

چه زمانی استفاده از ASP بهتر است؟

  • اگر پروژه شامل نقش ها و سطوح دسترسی متعدد است و یا یک پورتال است.
  • اگر در پروژه خود می‌خواهید از ساختارهای نوین برنامه نویسی مثل MVC استفاده کنید.
  • اگر میخواهید نرم افزار وب شما به صورت شی گرا تولید شود.
  • اگر در دراز مدت به فکر توسعه پروژه و ساختار و پشتیبانی سیستم هستید.

به بیان دیگر می توان گفت که در شرایط مساوی هیچ کدام نسبت بهم برتری ندارند و این شرایط و نیازهای شماست که به شما برای انتخاب یکی از این دو زبان کمک می کند. درمجموع تمام زبان های برنامه نویسی قابلیت پاسخگویی به نیازهای شما را دارند و این شمایید که تصمیم نهایی را میگیرید. امیدواریم با خواندن این مقاله جواب خیلی از پرسش های خود را گرفته باشید. نظرات خود را با کارناوب به اشتراک بگذارید.



به مطلب ارائه شده امتیاز بدهید



Arun

سیدمحمد حسین موسوی

اگر شما هم می خواهید در وب سایت ما مطلب بگذارید می توانید از طریق فرم استخدام همکاری خود را اعلام کنید

  • مطلب چه طور بود؟ سوالی در این باره دارید؟ در بخش نظرات مطرح نمایید.

نظر سنجی

بهترین سرویس آمار بازدیدکنندگان کدام است ؟


نمایش نتیجه ها



54رای