رفتن به نوشته‌ها

مقایسه C#- asp.net با PHP , همه چیز درباره php و asp.net

به نام دانای بر حق

مقدمه

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

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

 

وضعیت نرم‌افزاری و توسعه دهنده

مورد اول زبان برنامه نویسی می باشد که در خصوص ASP.net دست شما باز تر از پی اچ پی است لذا در ای اس پی شما می‌توانید از زبان های دات نتی مثل vb.net و C# در این زمینه بهره ببرید ولی در PHP شما باید زبان PHP را یاد بگیرید چون فریم ورک نیست یک زبان است . این موضوع وقتی اهمیت پیدا میکند که شما از پیش یکی از زبان های دات نت را بلد هستید.

اما اگر هیچ زبانی بلد نیستید به سادگی میتونین بدون توجه به این موضوع انتخاب کنید.

اما اگر شما زبان های:

JAVA , visual basic را از پیش بلد هستید قطعا یادگیری ASP.net با C# برای شما ساده تر است.

اگر زبان های javascript یا C++ یا پایتون را بلد هستید به طور قطع نمی‌شود اذعان داشت ولی یادگیری PHP برای شما آسان تر خواهد بود.

اما در کل یادگیری PHP به نسبت به ASP.net آسان تر خواهد بود.

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

پایه و اساس راهندازی

PHP برای اجرا کد های خود به apache یا nginx و یا lighttpd برای اجرای خود نیاز دارد ولی asp.net به IIS نیاز دارد خوبی asp.net این است که زیاد درگیر کافنیگ این دو با هم نمی‌شوید ولی در PHP کمی مشکل با کافنیگ آنها خواهید داشته که البته در بسته های مثل xampp این مشکل برطرف شده است.

نکته: کاربر لینوکس در رابطه کانفیگ نیاز به نگرانی ندارند چرا که بسته های لینوکس به صورت پیشفرض تقریبا ۹۰٪ مشکلات را برطرف کرده اند.

مقایسه حجم وب سرور ها با بیان نسخه:( در ویندوز)

  • Apache HTTP Server 2.4.39 – حجم  ۱۶مگابایت
  • Nginx 1.17.1 – حجم ۱.۶ مگابایت
  • lighttpd Linux 1.4.54 – نسخه ویندوزی ندارد
  • Internet Information Services (IIS) 10.0 Express – نسخه سبک ۹.۱ مگابایت

اما هنگام بحث در مورد راندمان به تفکیک وب سرور ها می‌پردازیم.

جدول مقایسه

 

عنوان ASP.net امتیاز PHP امتیاز
انشای کد syntax یادگیری سخت تره و نیاز مبرم به شی گرایی ۲ یادگیری ساده و کمترین درد سر / اما اخیراً کمی سخت شده است ۴
سرعت اجرای کد متوسط رو به پایین ۲ سریع ۴
سرعت همبندی یا کامپایل بسیار کم ۱ بدون نیاز به کامپایل ۵
انعطاف در کدنویسی کم و اجبار در شی گرایی ۲ بسیار زیاد ۵
شی گرایی قوی ۴ خوب ولی در حال رشد ۳
ارتباط با امکانات سیستم عامل تسلط نسبی به سیستم عامل فقط ویندوز ۴ متوسط در ویندوز کم در لینوکس بیشتر ۳
استقلال از سکو cross platform ضعیف در برابر PHP ۲ بسیار بسیار قوی ۵
قدرت IDE خوب و ایده آل ۴ IDE رسمی خوبی ندارد ۱
اسناد آموزشی documantion بسیار خوب ۵ بسیار خوب و مثال های فراوان ۵
شرکت در متن باز open source بسیار ضعیف ۲ صد در صد متن باز ۵
بازار کار داخلی مناسب مخصوص محل های دولتی ۴ خوب ولی در بین شرکت های خصوصی ۳
بازار کار جهانی افتضاح ۱ تقریبا خوب ۳
(در ایران)بحث دانشگاهی بسیار محبوب ۵ عدم توجه مناسب ۲
استفاده برای پایگاه داده ها database بسیار خوب و دارای  ORM محلی entity ۵ ارتباط بسیار قوی ولی بدون ORM محلی به در حد رقابت ۴
پایداری IDE عالی ۵ متوسط ۲
جایگزینی در IDE ندارد ۰ بسیار قوی ۵
برنامه های چند نخی یا multi thread دسته بسته ولی قابل اجرا ۳ ندارد ۰
کتابخانه های خارجی ضعیف ۲ بسیار قوی ۵
امنیت داده ها و برنامه ۴ کامپایل میشود ولی قابلیت مهندسی معکوس را دارد در کل عالی ولی سورس کد عینا تقدیم هکر یا مشتری میشود ۱
پیشرو بودن در تکنولوژی های وب عملکرد متوسط و پیاده سازی سخت ۲ عالی ۵
پشتیبانی از زبان های غیر لاتین خوب و قابل قبول در همه موارد ۴ بد همراه با اذیت ۲
چرخه انتشار نگارش ها version release cycle بسیار خوب و منظم ۵ خوب ۴
خطازدایی یا debug برنامه خوب با قابلیت بریک پوینت ۴ بد و سخت فقط نمایش خط ارور و دلیل ۲
حرکت در چهار چوب و استاندارد توسعه دهنده زبان بسیار خوب ۵ عدم توجه به موضوع و آزادی ۱۰۰٪‌برنامه نویس ۲
اکوسیستم پیکج منیجر ضعیف به نام nuGet ۲ بی نقص و پر بار به نام composer ۵
هزینه استفاده معقول ۳ صفر ۵
جامعه پاسخگو یا commiunty قابل تحمل ۳ بسیار قوی فعلا ۵
فریم ورک های شخص ثالث یا
third party
افتضاح ۱ بسیار عالی ۵
پشتیبانی از فایل های دودویی یا باینری عالی ۵ خیلی ضعیف ۱

در انتها اگر موردی فراموش شده بفرمایید اضافه کنیم.

بررسی Framework های سوم شخص یا third party

برای این که یه زبان قابلیت های بهتری داشته باشد از فریم ورک های زیر مجموعه که توسط سایر توسعه دهنده ها غیر از سازنده اصلی استفاد میشود در این زمینه asp.net می‌شود به جرائت گفت فقط DNN را دارد ولی در PHP شما با خیل عظیمی از فریم ورک خیلی خوب مثل Laravel , Symphiny, Zend, CakePHP و … روبه‌رو هستید.

 

راندمان و اجرای کد/ Performance & benchmark

برای بنج مارک آخرین بسته دات نت یعنی ۲۰۱۹ version 16.1.3

با PHP 7.3 بر روی یک ماشین مجازی امتحان شده است امتحان شده است

زمان نصب و راهندازی

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

موضوع زبان زمان
زمان نصب ویژال استدیو Asp.net ۳ ساعت و ۱۷ دقیقه
زمان نصب xampp PHP ۱۴ دقیقه

 

میزان مصرف رم به همراه هنگام standby

 

موضوع زبان زمان
استفاده از حافظه Asp.net ۱۷۱ MB
استفاده از حافظه با فرض nginx PHP ۱۲ MB

سرعت اعمال تغییرات

موضوع زبان زمان
سرعت اعمال  تغییرات در پروژه خام بار اول Asp.net ۳۰ ثانیه
سرعت اعمال تغییرات در پروژه خام بار دوم Asp.net ۱۱ ثانیه
سرعت اعمال تغییرات PHP بالا فاصله بعد از ذخیره حدود ۰

 

سرعت اجرای کد

موضوع زبان زمان
اجرای یک حلقه ضرب یک میلیون عمل ریاضی Asp.net ۲.۹ ثانیه
همان مورد بالا عیناً PHP ۱.۱ ثانیه

 

زمان انتشار

 

موضوع زبان زمان
سرعت پابلیش Asp.net ۴۴ ثانیه کامپایل پروژه خام + زمان کپی
سرعت پابلیش PHP درجا + زمان کپی

نتیجه گیری

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

فراموش نکنید اگر سی شارپ بلد باشید، می‌توانید ویندوز اپ هم بنویسید ولی PHP می‌شود گفت بهترین انتخاب برای وب هست.

‌A1Gard

اول از همه کوچک ترین عضو مجموعه ۴xmen بنده حقیر هستم. در ثانی یک توسعه دهنده هستم زمینه های تخصصی کارم :‌ Delphi, PHP, C++ ,Python, JavaScript, Unity game engine, C#, asm و علاقه مند به لینوکس، RCE ، کریپتوگرافی هستم. تا الان حضرت حق اینا رو به ما داده و هر وقت که بخواد ازمون میگیره دست خودشه. یا حق، با حق، تا حق

More Posts

منتشر شده در PHPبرنامه نویسیطراحی وب

نظر

  1. سعيد سعيد

    همین یک جمله «علت این موضوع این است که asp.net از COM-based system استفاده میکند» کل کار شما را زیر سؤال برد! یک زمانی ASP کلاسیک مبتنی بر COM وجود داشت. دهه ۹۰. پس از آن ASP.NET ارائه شد. بعد MVC آن. الان هم ASP.NET Core چندسکویی و نگارش‌های قبلی آن در فاز نگهداری هستند: https://github.com/aspnet

    • ‌A1Gard ‌A1Gard

      سلام و خیر مقدم
      ممنون از تذکر به جاتون. بنده با توجه به اطلاعات پیشینم در مورد com , DCOM , COM+ دچار اشتباه شدم و علت رو این فرض کردم
      اما این که یک جای مطلب اشتباهی رخ بده کل مطلب رو زیر سوال بردنش اصلا منطقی نیست. غریب به یقین نوشته ما با تبع شما سازگار نبوده چنین میفرمایید.
      و این که .net core رو با اون نواقص شما قبول کردید در نوع خودش جالب هست

  2. تاریخ همه پست ها یکیه.

    مرداد ۱, ۱۳۹۸

    • ‌A1Gard ‌A1Gard

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *