php یا asp.net core?

سلام خدمت همه ی خوانندگان عزیز و گل و گلاب(اولشو با عشق شروع کردم مثلا?)اول از همه بگم که ما چیزی به اسم بدتر و بهتر نداریم!فقط باید ببینیم کدوم رو باید برای کدوم پروژه انتخاب کنیم!البته بگماا...قوی تر و ضعیف تر داریمفقط بحث اینه که چی جاش کجاستو یه چیز دیگه رو هم بگماینکه php یه زبانه و asp.net core یه پلتفرم عاقلانه ترین کار اینه که از یه سری جهات مثل سرعت و ... مقایسشون کنیم.در اصل میبایستی که asp.net core با Laravel و Yii مقایسه میشدولی اون بمونه تا مقاله های بعدی:)اول از همه بذارین یکم راجع به هر دوتاشون براتون بگم:PHPphpپی‌اچ‌پی (PHP) یک زبان برنامه‌نویسیِ شیءگرا و برای سرور است که برای طراحی وب توسعه یافته‌است، اما می‌توان از آن به عنوان یک زبان عمومی نیز استفاده‌کرد. تا ژانویهٔ سال ۲۰۱۳ میلادی، پی‌اچ‌پی روی ۲۴۴ میلیون وبگاه و ۲٫۱ میلیون سرور وب نصب شده‌است.این زبان در سال ۱۹۹۵ میلادی توسط راسموس لِردورف ( Rasmus Lerdorf) ساخته‌شد و در حال حاضر توسعهٔ آن بر عهدهٔ گروه پی‌اچ‌پی است.در ابتدا، پی‌اچ‌پی از عبارت صفحهٔ خانگی شخصی (به انگلیسی: Personal Home Page) گرفته شده‌بود.اما اکنون این کلمه مخففِ بازگشتی PHP: Hypertext Preprocessor به معنی پی‌اچ‌پی: پیش‌پردازنده‌ی ابرمتن است.کدهای پی‌اچ‌پی توسط یک سرور وب که نرم‌افزار پی‌اچ‌پی روی آن نصب باشد، تفسیر می‌شود. دستورهای این زبان می‌توانند به صورت مستقیم در درون کدهای اچ‌تی‌ام‌ال قرار بگیرند. زبان پی‌اچ‌پی از نسخهٔ ۴٫۳ به بعد قابلیت پشتیبانی از واسط خط فرمان را نیز به امکانات خود اضافه کرد. این قابلیت می‌تواند برای ایجاد نرم‌افزارهای غیر وبی یا نرم‌افزارهایی با واسط گرافیکی کاربر مورد استفاده قرار بگیرد.پی‌اچ‌پی یک نرم‌افزار آزاد است که تحت مجوز پی‌اچ‌پی انتشار یافته‌است. این مجوز به دلیل قرار دادن محدودیت روی استفاده از عنوان پی‌اچ‌پی، با مجوز همگانی گنو (GPL) سازگار نیست. پی‌اچ‌پی را می‌توان روی اکثر سرورهای وب نصب کرد. همچنین قابلیت نصب آن به صورت یک شل جداگانه روی تقریباً تمامی سیستم‌های عامل و پلت‌فرم‌ها (یا سکوها) وجود دارد.Asp.net Coreasp.net coreیک فریمورک Open Source (منبع باز) و cross-platform جدید است که برای ساخت برنامه های متصل به اینترنت مانند برنامه های وب، برنامه های اینترنت اشیا و بک اند تلفن همراه به کار می رود. برنامه های ASP.Net Core می توانند بر روی Net Core. یا به صورت کامل روی فریمورک Net. اجرا شوند.همچنین برای توسعه ی بهینه ی فریمورک برنامه هایی که در cloud یا در محیط گسترش یافته اند طراحی شده است. این فریمورک شامل اجزای modular (مدولار) با حداقل سربار است بنابراین در هنگام ساخت راه حل های خود انعطاف پذیری را حفظ می کند. شما می توانید برنامه های ASP.NET Core خود را از طریق cross-platform در ویندوز، مک و لینوکس توسعه و اجرا کنید. همچنین ASP.Net Core در گیت هاب اوپن سورس می باشد.خب حالا که راجع به هر دوتاشون یه سری چیزا فهمیدیم میریم سراغ مقایسشون:)سرعت:از اصلی ترین مزایای asp.net core میشه همین رو نام برد:)با اختلاف خیلی زیاد سریع ترین فریمورک توی جهانه و php که سهله!حتی جاوا و نود جی اس رو هم تو جیبش گذاشته:)php : با Nginx دوازده هزار ریکوئست بر ثانیه رو هم ثبت کرده(اینجا چند تا فریمورک دیگه هم میاریم تا متوجه بشین قشنگ)Node JS :هشتصد و سی هزار ریکوئست در ثانیهJava(Servlet) :دو میلیون و پونصد و پنجاه هزار ریکوئست بر ثانیه.Net :شش میلیون و نهصد و هفتاد هزار ریکوئست بر ثانیه:)))))))خب میبینیم که برنده ی این رقابت با اقتدار .net هستش:)))) .Net 1 - php 0هزینه ی توسعه و نگهداری و ... :php :همونطور که گفتیم php اوپن سورس و رایگانه و شما لازم نیست حتی 1 ریال براش هزینه بدینVsCode به راحتی باهاش کار میکنه و نیازاتونو برطرف میکنهسرور هم لینوکسه که اونم متن باز و رایگانه (دوستان منظورم فقط سیستم عامل هستا نیاین یقه ی منو بگیرین بگین پس ما چرا داریم پول میدیم:))))) ).net :خب خب خب اینجا یه اتفاق خیلی جالب میافته و اونم اینه که دیگه .net پولی نیست:)))از زمانی که دات نت کور اومد و بعدشم دات نت 5 دیگه دات نت اوپن سورس شده و اونم رایگانهمیتونین توی هر سیستم عاملی اجراش کنین و این یعنی با سرورای لینوکس هم کار میکنهبرای دیتابیس هم اجباری به استفاده از SqlServer نیست و میتونید از هر دیتا بیس رایگان دیگه ای که بخواید استفاده کنید.برای ide هم نسخه ی community ویژوال استودیو هست که کامل نیاز رو برطرف میکنه ولی حتی اگه نخواید میتونید از vs code استفاده کنید!چجوری ؟بیاید تا بهتون بگم شما داخل .net میتونید از cli استفاده کنید!مثلا : ساختن یه پروژه mvc اینجوریه:dotnet new mvc به همین سادگی میتونید از تمام ویژگی هایی که داخل ویژوال استودیو بود و شما برای کار با .net حتما بهش نیاز داشتید استفاده کنید!برنده ی این راند هم جفتشونن!مساوی شدن هر دو رایگانن:))) .Net 2 - php 1سرعت یادگیری : خب برنده ی این یه مورد php هست با اختلاف!چرا؟چون php یه زبانه و asp net core یه فریمورکه که کلی ویژگی خفن داره!در نتیجه تیتر های یادگیری توی php کمتره و این مورد رو php برنده میشه (هر چند که حتما به عنوان مزایا به حساب نمیاد) .Net 2 - php 2امنیت :امنیت رو از دو جانب بررسی میکنیم:هک کردن برنامهوضعیت کد ها پس از هک شدن سرورهک کردن برنامه :خب باید بگم که asp.net یه فریمورکه و کلی از ویژگی هایی که باید برای هک نشدن برنامه رعایت بشه رو (csrf,sqlInjection و ...) خودکار رعایت میکنه و مخصوصا اگه از معماری مثل clean توش استفاده کنی دیگه که اصلا نور علی نوره!وضعیت کد ها پس از هک شدن سرور :باید اینو در نظر بگیریم که وقتی سرور یا هاست هک بشه دیگه دست ما نیست و از ما کاری بر نمیاد در نتیجه اونموقع کدومشون بهتر عمل میکنن؟باید بگم که phpکه خب کامل میشه کدشو باز کرد و دید که چیکار داره میکنهچون کد به صورت مستقیم روی سرور قرار میگیره(درست مثل اکثر زبان ها)ولی راجع به asp.net قضیه خیلی فرق میکنهشما برای اینکه بخوای پروژه رو روی سرور دیپلوی کنی باید ابتدا پابلیشش کنیوقتی پروژه پابلیش میشه چیزی جز یه مشت فایل dll و یه سری فایل دیگه که نمیشه دیکدشون کرد نمیمونهدر نتیجه اینجا هم برنده asp.net هستبرنده ی کل در حوزه امنیت هم به asp.net اختصاص میگیره .Net 3 - php 2من که همین موردا برای مقایسه به ذهنم اومد اگه شما هم چیزی به ذهنتون اومد حتما بهم بگید تا ادامه بدم این پست رو و اینکه یچیزی باید بگماینکه php نوشتن خام خیلی سخته!علتش اینه که خیلی باید حواس جمع باشی تا نکات امنیتی رو رعایت کنی و پر از سوتی نشیولی خب باید بگم که برای پروژه هایی مثل یه فرم تماس با ما ساده phpمیتونه انتخاب خوبی باشهولی برای پروژه های بزرگ تر بدون شک باید از چیز دیگه ای استفاده کرد و اگر هم قصد به استفاده از phpهست باید از یک فریمورک کمک گرفته بشهامیدوارم از مطلبم خوشتون اومده باشهراستی اینم بگم تیم ما خوشحال میشه اگه پروژه های شما رو انجام بده:)