مقایسه طراحی سایت با PHP و ASP.NET

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

دلیل اصلی من از نوشتن این مقاله صحبت هایی است که به طور اتفاقی در دو جلسه متفاوتی که داشتم شنیدم، دلایل مطرح شده در دفاع از زبان اسکریپتی php به قدری برای من عجیب بود که نهایتا مجبور شدم در اینترنت جستجو کرده و به دنبال کشف واقعیت باشم.

قبل از اینکه وارد مباحث مربوط به مقایسه این دو زبان بشویم لازم است این نکته را مطرح کنم که من به عنوان برنامه نویس وب بیش از 15 سال تجربه برنامه نویسی دارم و در این مدت با زبان ها و پلتفرم هایی مانند جاوا، php ، asp، و asp.net کار کرده ام و به تمام آنها مسلط هستم.

برخی از مواردی که در دفاع از php مطرح می شوند عبارتند از:

سرعت php از asp.net بیشتر است؟

یکی از دلایلی که برنامه نویسان php برای دفاع از آن مطرح می کنند سرعت آن است و میگویند که سرعت php از asp.net بیشتر است، در حالیکه آزمایشات انجام شده نتیجه کاملا متفاوت را نشان می دهند. از نظر منطقی نیز چنین چیزی امکان ندارد به این دلیل که کدهای خروجی asp.net در سمت سرور تفسیر نمی شوند و به صورت dll هستند و web server در زمان اجرای کدها هیچگونه زمانی برای تفسیر آنها نمی گذارد و با سریعترین زمان ممکن اجرا می شوند. لذا چنین حرفی هیچ پایه و اساس علمی ندارد.

برای بررسی سرعت میان زبان های سمت سرور و مقایسه سرعت php و asp.net مقاله زیر را مشاهده کنید:

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

امنیت php بالاتر است؟

ایمن بودن نرم افزارهای کدباز یکی از مباحثی است که برخی برنامه نویسان مطرح می کنند. به طور کلی هر سیستمی که افراد زیادی بر روی آن کار کنند و استفاده کنندگان زیادی داشته باشد به مرور تکمیل می شود. اما کدباز بودن نه تنها دلیل بر ایمن بودن نیست بلکه در بسیاری از موارد ممکن است باعث شود که سیستم فوق مورد حمله قرار گرفته و هک شود. به عنوان مثال پلتفرم جوملا که بر پایه php است یکی از ضعیف ترین پلتفرم ها از نظر امنیتی است و هر از چندگاهی شاهد هک شدن نسخه های مختلف آن در اینترنت هستیم.

برخی از مشکلات امنیتی که ممکن است به خاطر برنامه نویسی سایت پیش بیاید عبارتند از:

Remote code execution
SQL injection
Cross Site Scripting (XSS)
Session Hijacking
XSRF

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

سایت های بزرگی مانند گوگل، فیسبوک و آمازون با php برنامه نویسی شده اند؟

پاسخ قطعا منفی است! سایت های فوق عمدتا از زبان های c++ پایتون و جاوا برای برنامه نویسی سمت سرور خود استفاده می کنند و به هیچ وجه از پلتفرم های اپن سورس مثل php در طراحی بخش های اصلی آنها استفاده نشده است. تنها گوگل برای برخی از سرویس های جانبی خود به طور محدود از زبان php استفاده می کند. تنها سایت پربازدید دنیا که از php استفاده می کرده است سایت یاهو است که آن هم در حال انتقال برنامه های خود به زبان جدید node.js است.

اگر ایران به قانون کپی رایت بپیوندد...

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

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

اگر منطق فوق درست بود، تا کنون تمام کشورهای دنیا از php استفاده می کردند و کسی به سراغ asp.net نمی رفت در حالیکه در عمل می بینیم که چنین نیست.

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


طراحی سایت فروشگاهی اختصاصی در وب 24


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

  • اگر پروژه ای که میخواهید انجام دهید یک پروژه کوچک است و در مقیاس های بزرگ عملیاتی اجرائی نمیشود php میتواند گزینه خوبی باشد.
  • اگر اسکریپت های آماده و کدهای آماده برای پروژه فوق به زبان php وجود دارند، گزینه مناسبی است.
  • اگر سرور شما لینوکس است، از php استفاده کنید.

چه زمانی بهتر است از asp.net استفاده کنیم؟

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

همچنین بخوانید
ajax چیست و چه زمانی می توان از آن استفاده کرد؟ وب 24 در این مقاله به معرفی ایجکس و مزایا و معایب استفاده از آن پرداخته است.
منظور از کوتاه کننده لینک چیست و چه کاربردی دارد؟ وب 24 در این مقاله به تعریف کوتاه کننده لینک و معرفی بهترین سرویس های کوتاه کننده لینک پرداخته است.
دامین یا دامنه همان آدرس سایت شما است. با وب 24 همراه باشید تا با تمام نکات راهنمای خرید و ثب دامین آشنا شوید.
ویو پورت یا viewport چیست؟ متا تگ ویو پورت نقش بسیار مهمی در سئو و طراحی ریسپانسیو سایت دارد. آشنایی کامل با متاتگ view port را در این مقاله از وب 24 بخوانید.
دیدگاه خود را با ما در میان بگذارید
امتیاز:
captcha


دیدگاه کاربران
alireza tahoun
ارسال شده در : چهارشنبه 20 مهر 1401

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

برنامه نویس php , ap.net
ارسال شده در : یکشنبه 10 مهر 1401

سلام وقت بخیر من هم کاملا با شما موافق هستم با هر دو زبان کار کردم درسته با هر دو میشه پروژه های بزرگی نوشت ( من به تمام افرادی که نیاز به سایت شخصی ، فروشگاهی و ... دارن وردپرس رو صد درصد پیشنهاد میکنم ) به خاطر هزینه های خیلی کم برای راه اندازی و سرعت و راحتی کار و ... اما اگر بخوایم کسب کار بزرگ و قوی راه اندازی کنیم بهتره وردپرس رو کنار بذاریم و در ابتدا یک سرور مجازی یا اختصاصی تهیه کنیم . و ساخت وب سایت از پایه php یا ap.net رو انتخاب کنیم و پروژه رو به شکلی که نیاز داریم طراحی کنیم اگر با کرک کردن نرم افزار های ماکروسافت مشکلی ندارید خب ساخت با ap.net انتخاب بهتری هست به خاطر خیلی سریع تر و با کیفیت تر از اب در میاد به خاطر ابزار های ماکروسافت و ... معمولا همه برنامه ها باگ دارن اما asp باگ های کم تری ایجاد میشه به خاطر محیط توسعه و ابزار های اماده از طرفی میشه برای تمامی سیستم عامل های دیگه برنامه ساخت ( البته تعدادی زبان های دیگه این قابلیت رو دارن) تعدادی هم میگن مای اسکیول از اسکیول سرور قوی تر هست بهتره یک بار این رو شخصا تست کنید فک کنم به سمت اسکیول سرور برید و مای اسکیول رو رها کنید . پس از حجیم شدن و بزرگ شدن سایت های وردپرسی هم امکان انتقال دیتابیس از مای اسکیول به اسکیول سرور و سایت ap.net هست .

برنامه نویس
ارسال شده در : جمعه 26 شهریور 1395

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