ویرگول
ورودثبت نام
Amata
Amata
خواندن ۶ دقیقه·۲ سال پیش

php یا asp.net core?

سلام خدمت همه ی خوانندگان عزیز و گل و گلاب(اولشو با عشق شروع کردم مثلا?)

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

در اصل میبایستی که asp.net core با Laravel و Yii مقایسه میشد
ولی اون بمونه تا مقاله های بعدی:)
اول از همه بذارین یکم راجع به هر دوتاشون براتون بگم:

PHP

php
php
پی‌اچ‌پی (PHP) یک زبان برنامه‌نویسیِ شیءگرا و برای سرور است که برای طراحی وب توسعه یافته‌است، اما می‌توان از آن به عنوان یک زبان عمومی نیز استفاده‌کرد. تا ژانویهٔ سال ۲۰۱۳ میلادی، پی‌اچ‌پی روی ۲۴۴ میلیون وبگاه و ۲٫۱ میلیون سرور وب نصب شده‌است.این زبان در سال ۱۹۹۵ میلادی توسط راسموس لِردورف ( Rasmus Lerdorf) ساخته‌شد و در حال حاضر توسعهٔ آن بر عهدهٔ گروه پی‌اچ‌پی است.در ابتدا، پی‌اچ‌پی از عبارت صفحهٔ خانگی شخصی (به انگلیسی: Personal Home Page) گرفته شده‌بود.اما اکنون این کلمه مخففِ بازگشتی PHP: Hypertext Preprocessor به معنی پی‌اچ‌پی: پیش‌پردازنده‌ی ابرمتن است.
کدهای پی‌اچ‌پی توسط یک سرور وب که نرم‌افزار پی‌اچ‌پی روی آن نصب باشد، تفسیر می‌شود. دستورهای این زبان می‌توانند به صورت مستقیم در درون کدهای اچ‌تی‌ام‌ال قرار بگیرند. زبان پی‌اچ‌پی از نسخهٔ ۴٫۳ به بعد قابلیت پشتیبانی از واسط خط فرمان را نیز به امکانات خود اضافه کرد. این قابلیت می‌تواند برای ایجاد نرم‌افزارهای غیر وبی یا نرم‌افزارهایی با واسط گرافیکی کاربر مورد استفاده قرار بگیرد.
پی‌اچ‌پی یک نرم‌افزار آزاد است که تحت مجوز پی‌اچ‌پی انتشار یافته‌است. این مجوز به دلیل قرار دادن محدودیت روی استفاده از عنوان پی‌اچ‌پی، با مجوز همگانی گنو (GPL) سازگار نیست. پی‌اچ‌پی را می‌توان روی اکثر سرورهای وب نصب کرد. همچنین قابلیت نصب آن به صورت یک شل جداگانه روی تقریباً تمامی سیستم‌های عامل و پلت‌فرم‌ها (یا سکوها) وجود دارد.

Asp.net Core

asp.net core
asp.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هست باید از یک فریمورک کمک گرفته بشه
امیدوارم از مطلبم خوشتون اومده باشه



راستی اینم بگم
تیم ما خوشحال میشه اگه پروژه های شما رو انجام بده:)

asp netnet coreبرنامه نویسیطراحی وبطراحی وب سایت
تیم ما از همکاری با شما خوشحال خواهد شد:)
شاید از این پست‌ها خوشتان بیاید