مقایسه بین زبان برنامه نویسی وب ASP.NET و PHP

زبان برنامه نویسی وب ASP یا ASP.NET چیست ؟

ASP مخفف کلمه Active Server Pages است و یک محصول منحصر به فرد برای شرکت مایکروسافت به حساب می آید، این زبان برنامه نویسی اکنون منسوخ شده است و جای خود را به زبان اسکریپت نویسی ASP.NET داده است.

در واقع ASP.NET یک زبان برنامه نویسی نیست بلکه یک تکنولوژی برنامه نویسی وب سایت با استفاده از دات نت است، شما می توانید با #C یا #F یا زبان های برنامه نویسی دیگر دات نت ASP.NET  بنویسید، اما با توجه با اینکه شما به عنوان یک زبان بیشتر با این محصول آشنا هستید ما در این سری مقالات از ASP.NET به عنوان یک زبان برنامه نویسی یاد می کنیم.

بیشتر شرکت های و سازمان های بزرگ برای نرم افزارهای تحت وب خود از این زبان برنامه نویسی استفاده می کنند. نرم افزاری که بیشترین هماهنگی با این زبان برنامه نویسی را دارد به عنوانMicrosoft Visual Studio شناخته می شود که در واقع محیط برنامه نویسی مایکروسافت محسوب می شود.

در این نرم افزار قابلیت های بسیار زیادی برای برنامه نویسی به صورت پیش فرض قرار گرفته اند که کار برنامه نویسی را برای برنامه نویسان بسیار راحت می کند.

معمولا تعداد خط های کدی که باید برای یک برنامه به زبان ASP.NET نوشته شود نسبت به محصولات مشابه کمی بیشتر است که همین دلیل می تواند تا حدودی باعث زمانگیر بودن کدنویسی در این زبان برنامه نویسی برای فعالیت های پیچیده شود.

در صورتیکه تغییری در هر خط کد از این زبان برنامه نویسی انجام شود به ناچار کل برنامه بایستی مجددا کامپایل شود ، بنابراین زمان برنامه نویسی تا حدودی افزایش می یابد.

وب سروری که با این زبان برنامه نویسی هماهنگ است صرفا وب سرور شرکت مایکروسافت که همان IISاست می باشد و معمولا به عنوان پایگاه داده نیز در این نوع زبان برنامه نویسی از Microsoft SQL Server استفاده می شود.

درست است که ASP.NET و IIS هر دو نرم افزارهایی رایگان هستند اما شما برای لایسنس ویندوز بایستی پول پرداخت کنید و از طرفی نرم افزار Visual Studio نیز نرم افزار ارزان قیمتی نیست.

ASP.NET vs PHP
ASP.NET vs PHP

بیشتر بخوانید »»» بهینه سازی و افزایش سرعت ASP.NET

پشتیبانی زبان برنامه نویسی  ASP.NET  توسط وب سایت و مرجعی به نامMSDN انجام می شود که مخفف کلمه Microsoft Software Developer Network  می باشد. پیشرفت ها و توسعه هایی که در این زبان برنامه نویسی انجام می شود توسط بازخوردها و تجاربی است که کاربران این محصول به وب سایت این شرکت اطلاع می دهند و همین موضوع باعث ارائه نسخه های جدیدتر این زبان برنامه نویسی با امکانات جدید می شود.

. ASP.NET تحت برند مایکروسافت است و این یعنی بسیاری از زبان ها یا Platform های دیگر را پشتیبانی نمی کند اما در این حین به شما امکانات بسیار ساده ای برای شروع برنامه نویسی می دهد، ماژول های آماده و محیطی ساده و رابط کاربری آسان برنامه نویسی را برای کاربران لذت بخش می کند.

توجه کنید که یکی از مشکلاتی که در دنیای برنامه نویسی به این زبان برنامه نویسی وارد می شود هزینه ای است که برای خرید نرم افزارهای آن صرف می شود، اما با توجه به اینکه ما در ایران هستیم و هیچ هزینه ای برای خرید این نرم افزارها نمی کنیم، ASP.NET  می تواند گزینه مناسبی برای برنامه نویسی وب باشد.

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

 

PHP  مخفف کلمه PHP Hypertext Preprocessor است و یک نرم افزار یا بستر برنامه نویسی متن باز و رایگان است که توسط شخصی به نام رزموس لردورف در سال ۱۹۹۵ طراحی و ایجاد شد.

یکی از نکات مهمی که در خصوص برنامه نویسی به زبان PHP وجود دارد این است که این زبان وابسته به هیچ Platform خاصی نیست و می توان آن را بر روی هر سیستمی عاملی اجرا و استفاده کرد.

شرکت های متوسط و کوچک بیشتر از این زبان برنامه نویسی در دنیا استفاده می کنند زیرا هزینه توسعه و همچنین هزینه هاستینگی که در اینترنت دارد بسیار ارزان است.

بسیاری از ابزارهای رایگان برای توسعه دهندگان این زبان برنامه نویسی بصورت رایگان در اینترنت وجود دارد که به برنامه نویسان PHP این امکان را می دهد که بتوانند براحتی با آنها برنامه بنویسند.

ملاک های انتخاب یک زبان برنامه نویسی طراحی سایت چیست ؟

 

به هیچ عنوان بصورت کلی نمی توان گفت کدام خوب یا بد است، برای تعیین خوبی یا بدی چیزی بایستی شما دارای ملاک یا فاکتور باشید در غیر اینصورت مقایسه یا انتخاب شما غیرفنی و از روی تعصب خواهد بود.

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

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

ASP.NET vs PHP
ASP.NET vs PHP

فاکتور اول : تکنولوژی مورد استفاده در ASP.NET بهتر است یا PHP ؟

 

زبان برنامه نویسی PHP در اصل برای نوشتن اسکریپت های وب ایجاد شد و هدف اصلی آن کاهش پیچیدگی های برنامه نویسی های وب ای مانند Perl و CGI است.

 PHP این امکان را ایجاد می کند که افراد تازه وارد به دنیای برنامه نویسی وب نیز بتوانند در این حوزه شروع به فعالیت کنند و به همین دلیل بیشتر کارهای ساده و طراحی های وب سایت های کوچک با این زبان برنامه نویسی شروع شد و اکثرا در اوایل برنامه نویسان حرفه ای از این زبان استفاده نمی کردند.

اما به مرور زمان با توجه به گسترش روزافزون نرم افزارهای Open Source، حرکت رو به جلوی این زبان بسیار سریع صورت گرفت. یکی از مشکلات این زبان، عدم وجود توابع زیاد و همچنین دستورات کم بود که با گستردگی استفاده از PHP به مرور این موانع و مشکلات برطرف شد و امروزه می توان با  PHP  توابع پیچیده ای را برنامه نویسی کرد. PHP یک زبان مفسری است یعنی در هر بار اجرا بایستی کد توسط وب سرور خط به خط اجرا و نتیجه نمایش داده شود.

یکی از مشکلاتی که برنامه نویسان به PHP می گیرند این است که اگر شخصی بتواند به سرور لینوکسی یا آپاچی شما دسترسی پیدا کند، با توجه به اینکه کدهای شما بصورت کامپایل نشده و Open Source روی سرور قرار دارند، می توانند به آنها دسترسی پیدا کنند، این مشکل در ASP.NET وجود ندارد، زیرا برنامه قبل از اجرا به فایل های DLL کامپایل می شود و باعث عدم نمایش کد به مهاجم می شود، این مشکلPHP  با معرفی تکنولوژی های رمزنگاری مانند Zend و ionCube حل شد تا بتوان کدهای PHP را Encode کرد.
در ابتدا PHP از شیء گرایی پشتیبانی نمی کرد اما به مرور این قابلیت به یکی از قدرت های این زبان تبدیل شد.

تکنولوژی کاربردی این زبان بیشتر برای نوشتن و اجرا کردن اسکریپت های وب برای اجرا در سیستم عامل های Open Source  ای مانند یونیکس و لینوکس استفاده می شود. البته یکی از خرده هایی که به PHP گرفته می شود این است که هنوز تا حدودی نقص های اولیه خود را در خصوص شیء گرایی دارد و به گفته برخی برنامه نویسان خاصیت های حرفه ای شیء گرایی در این زبان برنامه نویسی دیده نشده است.

یکی از قدرت های بی بدیل  PHP  عدم وابستگی به Platform خاص است، یعنی برنامه هایی که با زبان PHP نوشته می شوند به راحتی قابل اجرا بر روی هر سیستم عاملی از جمله ویندوز هستند.

اما ذاتا تکنولوژی برنامه نویسی وب PHP مبتنی بر یک ساختار است که به آن در اصطلاح فنی LAMP می گویند. LAMP مخفف کلمات Linux به عنوان سیستم عامل، Apache  به عنوان وب سرور، MySQL  به عنوان پایگاه داده و در نهایت PHP به عنوان زبان برنامه نویسی می باشد.

بنابراین اکثر افرادی که برای طراحی سایت به برنامه نویسی وبPHP می پردازند با این ابزارهای کاملا رایگان آشنا هستند.
از دات نت یا ASP.NET می توان به عنوان یک Platform نام برد تا یک زبان برنامه نویسی، دات نت یک محصول کاملا مایکروسافتی است که به عنوان نسل جدید ابزارهای برنامه نویسی و توسعه نرم افزار شرکت مایکروسافت به بازار ارائه شده است.

ASP.NET vs PHP
ASP.NET vs PHP

دات نت را می توان بیشتر با Platform هایی مثل جاوا مقایسه کرد و در این میان بیشتر رقابت بین ASP.NET و Java می باشد. توجه کنید که زبان برنامه نویسی کلاسیکی به نام ASP  وجود داشت که قبلا استفاده می شد اما امروزه این زبان برنامه نویسی وب منسوخ شده است و دیگر استفاده ای ندارد و هیچ ارتباطی هم به زبان برنامه نویسی ASP.NET ندارد.

یکی از قدرت های اصلی ASP.NET وجود کتابخانه ها یا همان Library های بسیار غنی و توایع زیاد و همچنین کلاس های زیادی است که در   ASP.NET  وجود دارد و همین امر امکان انجام تقریبا هر کاری را در محیط وب به یک برنامه نویس می دهد.

در بیشتر موارد برای برنامه نویسی ASP.NET از Microsoft Visual Studio و برای پایگاه داده نیز از Microsoft SQL Server  و برای وب سرور نیز از IIS یا همان Internet Information Serviceمایکروسافت استفاده می شود.

در ASP.NET کدها در سمت سرور Encode می شوند و اگر کسی بتواند به سرور دسترسی پیدا کند نمی تواند از این کدها که در قالب فایل های DLL هستند استفاده کند، در اصطلاح فنی به این عملیات Code-Behind گفته می شود.
زبان برنامه نویسی ASP.NET برای سیستم عامل ویندوز و استفاده در آن طراحی و ایجاد شده است و بیشتر برنامه هایی که در این زبان نوشته می شوند وابسته به سیستم عامل ویندوز هستند، البته این نکته را به عنوان نکته منفی در خصوص زبان برنامه نویسیASP.NET مطرح می کنند اما توجه کنید که مایکروسافت پروژه هایی را شروع کرده است که برنامه هایی که توسط ASP.NET نوشته می شوند بر روی سیستم عامل های دیگر نیز قابل اجرا باشند که معروفترین این پروژه ها به نام MONO شناخته می شود، بنابراین در آینده ای نه چندان دور شاهد این خواهیم بود که برنامه هایی که توسط ASP.NET نوشته می شوند به راحتی بر روی لینوکس و یونیکس نیز اجرا شوند.

از نظر تکنولوژی و معماری ASP.NET و Java از Platform هایی هستند که در سطح  Enterprise  و کلان استفاده می شوند و PHP معمولا برای نوشتن اسکریپت های وب استفاده می شود.

همانطور که قبلا هم اشاره کردیم برای نوشتن یک برنامه پیچیده در زبان ASP.NET تعداد خطوط کد بیشتری نسبت به PHP نیاز است و به همین دلیل زمان تولید و توسعه یا همان Develop Timeمربوط به زبانASP.NET  نسبت به زمان مشابه PHP بیشتر است.

بر خلاف PHP که یک زبان مفسری است، ASP.NET یک زبان کامپایلری است، بدین معنا که کدها بعد از هر بار نوشتن مجددا بایستی کامپایل شده و با فایل های DLL تبدیل شوند.

فاکتور دوم : برنامه نویسی با ASP.NET ساده تر است یا PHP ؟

 

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

در وهله اول باید بگوییم که یادگیری زبان PHP قطعا برای شروع ساده تر از برنامه نویسی به زبان ASP.NETاست اما برای برنامه نویسی اسکریپت های چند خطی یا وب سایت های کوچک نه برای نوشتن Web Application های بزرگ و سازمانی و یا اتوماسیون های اداری پیچیده، اگر می خواهید صرفا یک وب سایت یا یک CMS یا یک Web Application ساده و دارای پیچیدگی های کم بنویسید برای شروع یادگیری PHP بهترین گزینه است.

شما با استفاده از هر ویرایشگر متنی قادر به نوشتن کدهای PHP هستید که این خود یکی از مزایای اصلی این زبان برنامه نویسی وب می باشد. متاسفانه PHP ویرایشگر و ابزار مشخصی برای کدنویسی ندارد، شرکت های مختلفی در اینترنت ابزارهای مختلفی برای استفاده برای کدنویسی این محصول ارائه داده اند که این خود یک عدم تمرکز برای برنامه نویسی PHP را ایجاد می کند.
اما اگر قصد برنامه نویسی Web Application هایی در سطح Enterprise دارید ترجیجا ASP.NET را انتخاب کنید.

ASP.NET vs PHP
ASP.NET vs PHP

هدف اصلی و ماهیت واقعی زبان ASP.NET که همانطور که گفتیم یک Platform به حساب می آید.

نوشتن Web Application های بزرگ و دارای فرم ها و اطلاعات ورودی و پیچیدگی های زیاد است، برای کسانی که به برنامه نویسی کردن در محیط های گرافیکی عادت دارند این زبان بسیار بهتر است، در ASP.NET  شما در قالب استفاده از ابزارهای گرافیکی به راحتی می توانید تولید کد داشته باشید و همچنین با استفاده از فرم های آماده یا همان Web Form ها می توانید به راحتی به بانک های اطلاعاتی و ماهیت های مختلف اطلاعات و جدول ها بصورت گرافیکی دسترسی پیدا کنید بدون اینکه نیاز به کد نوشتن داشته باشید، ASP.NET  به صورت خودکار با ماژول هایی که در اختیار دارد این کدها را برای شما ایجاد می کند.

در کنار اینها فریم ورک .NET برخی از موارد مانندCaching ، احراز هویت و بسیاری دیگر از این مسائل را به خودی خود انجام می دهد. توابع ASP.NET اینقدر زیاد است که تقریبا شما را از استفاده کردن از توابع خارجی در برنامه نویسی خود بی نیاز می کند.

تمامی کارهایی که قرار است شما در ASP.NET انجام دهید در یک محیط یکپارچه یا بهتر بگوییم یک ابزار قدرتمند به نام Microsoft Visual Studio انجام می شود که طبیعتا سادگی های کار گرافیکی در محصولات مایکروسافت به خوبی در این نرم افزار نیز دیده می شود.

فاکتور سوم : وابستگی به سیستم عامل در ASP.NET بیشتر است یا در PHP ؟

 

یکی از مواردی که تا چند وقت پیش به عنوان مزیت PHP بر ASP.NET مطرح می شد این بود که کدهای نوشته شده توسط PHP بر روی هر سیستم عاملی قابل اجرا هستند و این موضوع برای کدهای ASP.NET وجود ندارد.

در حال حاضر کدهای PHP به راحتی با استفاده از نرم افزارهای شبیه سازی مثل WAMP و  XAMP  و بسیاری از این موارد به راحتی بر روی سیستم عامل ویندوز اجرا می شوند و شما نیازی نیست برای برنامه نویسی PHP حتما لینوکس بلد باشید.

در مقابل مایکروسافت نیز در سال های گذشته سعی کرده است این نقطه ضعف خود را پوشش دهد و در این راه پروژه معروفی به نام MONO را ارائه کرده است که توسط آن شما می توانید براحتی کدهای ASP.NET را بر روی Platform هایی مثل لینوکس و یونیکس اجرا و کد نویسی کنید.

همین مورد باعث شده است دیگرASP.NET این ضعف را نپذیرد، اما به دلیل عدم شناخت درست افراد از وجود چنین پروژه ای و همچنین عادت کردن به زبان PHP و گسترده شدن این زبان معمولا این مسئله عنوان نمی شود، هر چند شخصی که واقعا می خواهد کدنویسی در محیط ASP.NET کند در ۹۹ % موارد از ویندوز استفاده می کند اما با این پروژه حرف و حدیث ها در مقابل این نقطه ضعف تمام شد.

در واقع یکی پروژه  MONOبه عنوان Open Source ASP.NET با استفاده از وب سرور آپاچی و سرور لینوکس پیاده سازی و استفاده می شود.

بنابراین امروزهASP.NET را نیز می توانیم زبان برنامه نویسی وب سایت مستقل از سیستم عامل عنوان کنیم.

بیشتر بخوانید »»» آموزش PHP


سایر مقالات مفید سایت:

نوشتن نظر

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