22-01-2020, 03:33 PM
ابتدا قبل از شروع توضیح تفاوت زبان برنامه نویسی php با ASP به اختصار زبان PHP و ASP را توضیح خواهیم داد.
زبان php چیست ؟
زبان پیاچپی با هدف نوشتن اسکریپتهای وب نوشته شد. در واقع هدف ، فرار از پیچیدگیهای Perl و نوشتن CGI با زبانهایی مثل C و ارائه دستوراتی ساده برای طراحان صفحات وب بود.
پی اچ پی اولیه زبانی با دستورات محدود و ساده بود که بیشتر برای کارهای ساده و برای طراحان وب سایتها و نه برنامه نویسان حرفهای بود. این زبان کم کم پیشرفت کرد و بخصوص Open Source بودن آن باعث تسریع در پیشرفت آن شد. در مرحله اول تعداد دستورات و توابع این زبان گسترش پیدا کرد بطوریکه امروز نیز براحتی کارهای نسبتا پیچیده ای مثل کار با سوکتها یا تصاویر با توابع این زبان قابل اجرا است. همچنین از لحاظ معماری این زبان با پشتیبانی از شی گرایی پیشرفت مهم دیگری داشته است. پی اچ پی به طور کلی یکی از زبانهای معمول برای نوشتن اسکریپتهای اجرایی در محیط یونیکس ، لینوکس (هرچند که در ویندوز نیز به خوبی اجرا می شود) و کار با نرم افزار مدیریت بانک اطلاعات MySQL است.
زبان ASP.net چیست ؟
یکی از زبان های برنامه نویسی حرفه ای برای طراحی سایت ، ASP.NET است. ASP.NET نسل جدید ASP است. که با ASP کلاسیک سازگار نیست، اما ممکن است ASP.NET شامل ASP کلاسیک باشد. صفحات ASP.NET تألیف شده اند، که موجب سریع تر شدن آن از ASP کلاسیک شده است. ASP.NET دارای پشتیبانی بهتر زبان، یک مجموعه بزرگ از کنترل های کاربر، قطعات مبتنی بر XML، و تأیید یکپارچه هویت کاربر است.
صفحات ASP.NET دارای پسوند aspx. است، و به طور معمول در VB (ویژوال بیسیک) یا #C (سی شارپ) نوشته می شود. کنترل های کاربر در ASP.NET می توان به زبان های مختلف، از جمله ++ C و جاوا نوشته شود.
هنگامی که یک مرورگر درخواست یک فایل ASP.NET را دارد، موتور ASP.NET فایل را می خواند، اسکریپت را در فایل اجرا و تألیف می کند، و نتیجه را به شکل زبان HTML ساده به مرورگر برمیگرداند.
سرعت زبان php بالاتر است یا ASP ؟
یکی از دلایلی که برنامه نویسان پی اچ پی برای دفاع از آن مطرح می کنند سرعت آن است و میگویند که سرعت php از asp.net بیشتر است، در حالیکه آزمایشات انجام شده نتیجه کاملا متفاوت را نشان می دهند. از نظر منطقی نیز چنین چیزی امکان ندارد به این دلیل که کدهای خروجی asp.net در سمت سرور تفسیر نمی شوند و به صورت dll هستند و web server در زمان اجرای کدها هیچگونه زمانی برای تفسیر آنها نمی گذارد و با سریعترین زمان ممکن اجرا می شوند.
لذا چنین حرفی هیچ پایه و اساس علمی ندارد.
سرعت asp.net قابل مقایسه با سایر زبان ها و تکنولوژیها نیست و به مقدار قابل توجهی مخصوصاً در زمانی که مقدار داده ها افزایش می یابد بسیار سریع تر است.
سرعت asp.net قابل مقایسه با سایر زبان ها و تکنولوژیها نیست و به مقدار قابل توجهی مخصوصاً در زمانی که مقدار داده ها افزایش می یابد بسیار سریع تر است.
امنیت کدام زبان برنامه نویسی بیشتر است ؟
ایمن بودن نرم افزارهای کدباز یکی از مباحثی است که برخی برنامه نویسان مطرح می کنند. به طور کلی هر سیستمی که افراد بیشتری بر روی آن کار کنند و استفاده کنندگان زیادی داشته باشد به مرور زمان تکمیل می شود. اما کدباز بودن نه تنها دلیل بر ایمن بودن نیست بلکه در بسیاری از موارد ممکن است باعث شود که سیستم فوق مورد حمله قرار گرفته و هک شود.
به عنوان مثال پلتفرم جوملا که بر پایه پی اچ پی است یکی از ضعیف ترین پلتفرم ها از نظر امنیتی است و هر از چندگاهی شاهد هک شدن نسخه های مختلف آن در اینترنت هستیم.
برخی از مشکلات امنیتی که ممکن است به خاطر برنامه نویسی سایت پیش بیاید عبارتند از:
Remote code execution
SQL injection
(Cross Site Scripting (XSS
Session Hijacking
XSRF
هیچکدام از موارد بالا ارتباطی به زبان برنامه نویسی ندارد و برنامه نویس باید با موارد فوق آشنا باشد تا مشکل امنیتی برای آن بوجود نیاید. ضمن اینکه سیستم های بسیار زیادی در دنیا وجود دارند که با پلتفرم دات نت کار میکنند و اگر این پلتفرم مشکلی داشت قطعا هیچ کدام از این شرکت ها به سمت آن نمی رفتند.
برخی از مشکلات امنیتی که ممکن است به خاطر برنامه نویسی سایت پیش بیاید عبارتند از:
Remote code execution
SQL injection
(Cross Site Scripting (XSS
Session Hijacking
XSRF
هیچکدام از موارد بالا ارتباطی به زبان برنامه نویسی ندارد و برنامه نویس باید با موارد فوق آشنا باشد تا مشکل امنیتی برای آن بوجود نیاید. ضمن اینکه سیستم های بسیار زیادی در دنیا وجود دارند که با پلتفرم دات نت کار میکنند و اگر این پلتفرم مشکلی داشت قطعا هیچ کدام از این شرکت ها به سمت آن نمی رفتند.
سایت های بزرگی مانند گوگل، فیسبوک و آمازون با php برنامه نویسی شده اند؟
پاسخ قطعا منفی است! سایت های فوق عمدتا از زبان های C++ پایتون و جاوا برای برنامه نویسی سمت سرور خود استفاده می کنند و به هیچ وجه از پلتفرم های اپن سورس مثل پی اچ پی در طراحی بخش های اصلی آنها استفاده نشده است. تنها گوگل برای برخی از سرویس های جانبی خود به طور محدود از زبان php استفاده می کند. تنها سایت پربازدید دنیا که از php استفاده می کرده است سایت یاهو بود که آن هم در حال انتقال برنامه های خود به زبان جدید node.js است.
میتوان گفت به جز تفاوت زبان برنامه نویسی php با ASP یک وجه شباهت با هم دارند ، هیچ سایت قدرتمندی از این زبان ها به طور مستقیم استفاده نکرده است.
کدام زبان برنامه نویسی را می توان راحت یادگرفت ؟
یکی از مهمترین قسمت ها در تفاوت زبان برنامه نویسی php با ASP در نحوه یادگیری آن می باشد.
پی اچ پی با هدف اولیه سادگی برای استفاده و یادگیری نوشته شده است و تاکنون نیز هدف را منظور کرده است بنابراین میتوان به سادگی گفت که یادگیری و استفاده از پی اچ پی ساده تر از ASP.NET است.
استفاده از ASP.NET نیازمند آشنایی با مفهوم اولیه شی گرایی و همچنین پیچیدگیهای خاص دات نت است. در واقع یادگیری و استفاده از ASP کلاسیک ساده تر از ASP.NET و قابل قیاس با یادگیری پی اچ پی است. عموما طراحان وب سایت به دلیل سادگی استفاده و یادگیری پیاچپی آن را یاد میگیرند و برنامه نویسان حرفهای و مهندسان نرم افزار هم علاقه بیشتر به دات نت و JAVA دارند.
همچنین یک نکته قابل توجه در پیاچپی وجود هزاران خط کد و اسکریپت آماده به زبان PHP است که تقریبا در هر زمینهای وجود دارند ، این قضیه باعث شده بسیاری از برنامه نویسان پیاچپی به جای نوشتن کدها بسیاری اوقات اسکرپیتهای آماده موجود در اینترنت را سر هم کنند و به هدف خود برسند و یا شیوه کار را فرا بگیرند. البته کم کم در مورد دات نت نیز این قضیه در حال اتفاق است و سایتهایی که کدهای نمونه یا نرم افزارهای آماده با سورس ارائه میکنند در حال افزایش هستند.
بهترین زمان برای استفاده از PHP
اگر پروژه ای که میخواهید انجام دهید یک پروژه کوچک است و در مقیاس های بزرگ عملیاتی اجرائی نمیشود ، php میتواند گزینه خوبی باشد.
اگر اسکریپتهای آماده و کدهای آماده برای پروژه فوق به زبان php وجود دارند، گزینه مناسبی است.
اگر سرور شما لینوکس است، از php استفاده کنید.
بهترین زمان استفاده از ASP.net
اگر پروژه شامل انواع نقش های سیستمی و سطوح دسترسی مختلف و یک پورتال است از دات نت استفاده کنید.
اگر می خواهید از ساختارهای نوین برنامه نویسی مانند MVC استفاده کنید از دات نت استفاده کنید.
اگر می خواهید نرم افزار وب شما به صورت شی گرا تولید شود از دات نت استفاده کنید.
اگر به دنبال توسعه ساختار و پشتیبانی سیستم در دراز مدت هستند و دید کوتاه مدت به پروژه ندارید از دات نت استفاده کنید.
امیدواریم مطلب تفاوت زبان برنامه نویسی php با ASP برای شما مفید واقع شده باشد.