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

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

معرفی زبان برنامه نویسی وب ASP یا ASP.NET
زبان ASP با ASP.NET از پایه فرق دارند و ASP دیگر استفاده نمی شود. در واقع ASP.NET یک زبان برنامه نویسی نیست بلکه یک تکنولوژی برنامه نویسی وب با استفاده از دات نت است، شما می توانید با #C یا #F یا زبان های برنامه نویسی دیگر دات نت ASP.NET بنویسید نرم افزاری که بیشترین هماهنگی با این نوع برنامه نویسی را دارد Microsoft Visual Studio میباشد که در واقع محیط برنامه نویسی مایکروسافت محسوب می شود.
معمولا تعداد خط های کدی که باید برای یک برنامه به زبان ASP.NET نوشته بشود نسبت به محصولات مشابه کمی بیشتر است که همین دلیل می تواند تا حدودی باعث زمانگیر بودن کدنویسی در این زبان برنامه نویسی برای فعالیت های پیچیده شود. در صورتیکه تغییری در هر خط کد از این زبان برنامه نویسی انجام شود به ناچار کل برنامه بایستی مجددا کامپایل شود ، بنابراین زمان برنامه نویسی تا حدودی افزایش می یابد.
وب سروری که با این زبان برنامه نویسی هماهنگ است صرفا وب سرور شرکت مایکروسافت که همان IIS است می باشد و معمولا به عنوان پایگاه داده نیز در این نوع زبان برنامه نویسی از Microsoft SQL Server استفاده می شود نرم افزار Visual Studio نرم افزار ارزان قیمتی نیست. اما با توجه به اینکه ما در ایران هستیم و هیچ هزینه ای برای خرید این نرم افزارها نمی کنیم اما اگر ایران به قانون کپی رایت بپیوندد چه اتفاقی برای برنامه نویسان ASP.NET می افتد ؟ پشتیبانی زبان برنامه نویسی ASP.NET توسط وب سایت و مرجعی به نام MSDN انجام می شود .
معرفی زبان برنامه نویسی وب PHP
PHP مخفف کلمه PHP Hypertext Preprocessor است و یک بستر برنامه نویسی متن باز و رایگان است که توسط شخصی به نام رزموس لردورف در سال 1995 طراحی و ایجاد شد. یکی از ویژگی های زبان PHP این است که وابسته به هیچ Platform خاصی نیست و می توان آن را بر روی هر سیستمی عاملی اجرا و استفاده کرد در پروژه های پیچیده تعداد خطوط کد PHP کمتر از ASP.NET است زمان کمتری برای پیاده سازی لازم است.
PHP را می توانید بر روی هر سروری که بتواند از HTML پشتیبانی کند اجرا و استفاده کنید و معمولا پایگاده داده ای که برای نرم افزارهای تحت PHP استفاده می شود پایگاده داده رایگان MySQL است که متن باز نیز می باشد. شرکتی به نام Zend مسئول توسعه و ارائه نسخه های جدید PHP می باشد که به پشتیبان اصلی این زبان معروف است .هزینه هاستینگ PHP با توجه به قابلیت استفاده این زبان از لینوکس به عنوان یک سرور رایگان ارزانتر از نمونه ویندوزی است.
ملاک های انتخاب یک زبان برنامه نویسی وب 
مقایسه و انتخاب زمانی درست است که بر اساس ملاک و فاکتور و بدور از تعصب باشد. تکنولوژی مورد استفاده ، سادگی کار یا سهولت کاربری ، وابستگی به Platform ، امنیت ، سرعت و کارایی در اجرا ، ابزارها و رابط های کاربری ، سرعت توسعه ، منابع آموزشی و یادگیری ، پشتیبانی ، بازار کار ، هزینه و بحث بهینه سازی برای موتورهای جستجو می تواند مهمترین ملاک ها برای تعیین برتری یک زبان برنامه نویسی تحت وب می باشد
               - PHP یک زبان مفسری است یعنی در هر بار اجرا کد توسط وب سرور خط به خط اجرا و نتیجه نمایش داده می شود. اگر شخصی بتواند به سرور لینوکسی یا آپاچی شما دسترسی پیدا کند ، با توجه به اینکه کدهای شما   بصورت کامپایل نشده و Open Source روی سرور قرار دارند می توانند به آنها دسترسی پیدا کنند این مشکل را PHP با معرفی تکنولوژی رمزنگاری به نام Zend حل کرد تا بتواند کدهای PHP را Encode کند و دیگر نگران این مسئله نباشد.
این مشکل در ASP.NET وجود ندارد زیرا برنامه قبل از اجرا به فایل های DLL کامپایل می شود و باعث عدم نمایش کد به مهاجم می شود
               - PHP به دلیل عدم وابستگی به Platform خاص قابل اجرا بر روی هر سیستم عاملی است شما با استفاده از هر ویرایشگر متنی قادر به نوشتن کدهای PHP هستید و فقط کافی است ابزارهایی به اصلاح LAMP . را به رایگان تهیه کنید LAMP مخفف کلمات Linux به عنوان سیستم عامل ، Apache به عنوان وب سرور ، MySQL به عنوان پایگاه داده و در نهایت PHP به عنوان زبان برنامه نویسی می باشد که براحتی با استفاده از نرم افزارهای شبیه سازی مثل WAMP و XAMP و بسیاری از این موارد براحتی بر روی سیستم عامل ویندوز اجرا می شوند و شما نیازی نیست برای برنامه نویسی PHP حتما لینوکس بلد باشید.
از دات نت یا ASP.NET می توان به عنوان یک Platform نام برد تا یک زبان برنامه نویسی ، دات نت یک محصول کاملا مایکروسافتی که برای برنامه نویسی وابسته به Microsoft Visual Studio است و برای پایگاه داده نیز از Microsoft SQL Server و برای وب سرور نیز از IIS یا همان Internet Information Service مایکروسافت استفاده می شود که ذاتا برای سیستم عامل ویندوز و استفاده در آن طراحی و ایجاد شده است اما مایکروسافت این مشکل را با پروژه ای به نام MONO شناخته می شود حل کرده بنابراین در آینده ای نه چندان دور براحتی بر روی لینوکس و یونیکس نیز اجرا خواهد شد
              - برای نوشتن یک برنامه پیچیده در زبان ASP.NET تعداد خطوط کد بیشتری نسبت به PHP نیاز است و به همین دلیل زمان تولید و توسعه یا همان Develop Time مربوط به زبان ASP.NET نسبت به زمان     مشابه PHP بیشتر است. بر خلاف PHP که یک زبان مفسری است ، ASP.NET یک زبان کامپایلری است ، بدین معنا که کدها بعد از هر بار نوشتن مجددا بایستی کامپایل شده و با فایل های DLL تبدیل شوند.سرعت اجرای برنامه های کامپایل شده که در قالب فایل های DLL وجود دارند از برنامه های مفسری که بصورت خط به خط اجرا می شوند بیشتر است.
اما یک اسکریپت PHP سرعت بیشتری نسبت به اسکریپت مشابه در ASP.NET دارد زمانیکه شما یک اسکریپت PHP را اجرا می کنید این کد به سرعت تفسیر شده و اجرا می شود و خروجی به مرورگر کاربر ارسال می شود که در این میان وقفه ای نداریم  اما زمانیکه صحبت از اسکریپت ASP.NET می شود این کد علاوه بر اینکه به خودی خود باید اجرا شود بایستی چندین ماژول مانند ماژول های خواندن تنظیمات ، کنترل کردن Web Form ها ، انجام authentication ها و بسیاری دیگر از موارد را بصورت همزمان انجام دهد که همین مورد باعث کمتر شدن سرعت آن نسبت به مفسر PHP می شود.
بدون شک در برنامه هایی با تعداد خطوط پایین و اسکریپت های کوچک برتری با PHP است اما در سطوح کلان و برنامه های بسیار بزرگ سطح Enterprise که دارای ده ها یا صدها هزاران خط هستند برتری بدون شک با زبان های کامپایلری است . هر چند برنامه هایی برای سرعت بخشیدن به عملیات اجرای کدهای PHP ایجاد شده است.
               - نوع سیستم عامل نیز عامل بسیار مهمی در سرعت اجرا نرم افزارها می باشد. قطعا و بدون شک سیستم عامل ویندوز از نظر کارایی و سرعت نمی تواند با سرویس های لینوکسی برابری کند. ویندوز به یکباره کلیه منابع   سیستم را در اختیار می گیرد و وجود رابط گرافیکی ناخواسته سرعت اجرای نرم افزارها و سرویس ها را کند می کند .
اما لینوکس بر حسب نیاز اینکار را انجام می دهدو تمامی کارها از طریق Command و دستورات خط فرمان انجام می شود و رابط گرافیکی عملا وجود ندارد. سرویس های لینوکس بسیار قابل اعتمادتر از سرویس ها در ویندوز هستند و قطعا به این مورد برخورده اید که با انجام هر تغییری در سیستم عامل ویندوز یک Restart نیاز است.
از طرفی فایل سیستم مورد استفاده در هارد دیسک نیز می تواند عامل سرعت اجرای کد شما باشد که در این حالت بهترین فایل سیستم برای سرعت فایل سیستم لینوکسی ext4 است. و وجود RAID در هارد دیسک ها نیز می jواند جزو ملاک ها محسوب شود. با توجه به تحقیقات انجام شده در صورت اجرای کدهای ASP.NET با استفاده از MONO در لینوکس سرعت اجرا آن از PHP به نسبت بالاتر خواهد بود. اما از همه مهمتر دانش برنامه نویس است ، شیوه Query گرفتن و شیوه کد نویسی بر حسب دانش افراد متفاوت است ، هر چقدر هم که شما پروژه بزرگتری داشته باشید طبیعی است که دانش بیشتری را نیاز خواهید داشت .
              - سادگی کار با یک محیط برنامه نویسی بستگی به موارد مختلفی دارد که از جمله آنها می توان به اندازه پروژه ای که می خواهیم انجام دهیم اشاره کرد. در وهله اول باید بگوییم که یادگیری زبان PHP قطعا برای شروع ساده تر از برنامه نویسی به زبان ASP.NET است. شما با استفاده از هر ویرایشگر متنی قادر به نوشتن کدهای PHP هستید که این خود یکی از مزایای اصلی این زبان برنامه نویسی وب می باشد . برای کسانی که به برنامه نویسی کردن در محیط های گرافیکی عادت دارند ASP.NET بسیار بهتر است ، زیرا با ابزارهای گرافیکی براحتی می توانید تولید کد داشته باشید
و همچنین با استفاده از فرم های آماده یا همان Web Form ها می توانید براحتی به بانک های اطلاعاتی و ماهیت های مختلف اطلاعات و جدول ها بصورت گرافیکی دسترسی پیدا کنید بدون اینکه نیاز به کد نوشتن داشته باشید ، ASP.NET بصورت خودکار با ماژول هایی که در اختیار دارد این کدها را برای شما ایجاد می کند. در کنار اینها فریم ورک .NET برخی از موارد مانند Caching ، احراز هویت و بسیاری دیگر از این مسائل را به خودی خود انجام می دهد .
               - بحث امنیت بیشتر در حوزه میزان تخصص و دانش برنامه نویس بستگی دارد هرچند در موارد قبل ASP.NET را به صورت پیشفرض ایمن گفتیم اما باز هم تاکید می کنم که هیچ ملاکی برای امنیت بیشتر برنامه نویسی   PHP بر ASP.NET و برعکس آن وجود ندارد و صرفا این دانش یک برنامه نویس است که تعیین کننده امنیت یک نرم افزار است.
به هر حال با تمامی این اوصاف در نهایت این خلاقیت ، دانش و مهارت برنامه نویس است که یک زبان برنامه نویسی را خوب جلوه می دهد و یا بر عکس . یک برنامه نویس حرفه ای باید بتواند با Platform ها و ابزارهای مختلف کار کند و با آنها تا حدودی آشنایی داشته باشد ، نوع ابزار مهم نیست مهم دانش و شیوه پیاده سازی است. برای یک برنامه نویس حرفه ای سویچ کردن از برنامه نویسی ASP.NET به PHP و برعکس کار چندان سختی نیست زیرا مفاهیم را همیشه در ذهن دارد فقط syntax اجرای آن را عوض می کند

نظرات کاربران

نوشتن نظر







وبلاگ گروه آرتین

ارائه مطالب مفید و سودمند در زمینه طراحی سایت ، بازاریابی اینترنتی و بهینه سازی موتورهای جستجو (SEO)

درباره گروه فناوران آرتین

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