خرید بک لینک

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

مقايسه php و asp.net

قبل از اينکه وارد مباحث مربوط به مقايسه اين دو زبان بشويم لازم است اين نکته را مطرح کنم که من به عنوان برنامه نويس وب بيش از 15 سال تجربه برنامه نويسي دارم و در اين مدت با زبان ها و پلتفرم هايي مانند جاوا، php ، asp، و asp.net کار کرده ام و به تمام آنها مسلط هستم.

برخي از مواردي که در دفاع از php مطرح مي شوند عبارتند از:

سرعت php از asp.net بيشتر است؟

يکي از دلايلي که برنامه نويسان php براي دفاع از آن مطرح مي کنند سرعت آن است و ميگويند که سرعت php از asp.net بيشتر است، در حاليکه آزمايشات انجام شده نتيجه کاملا متفاوت را نشان مي دهند. از نظر منطقي نيز چنين چيزي امکان ندارد به اين دليل که کدهاي خروجي asp.net در سمت سرور تفسير نمي شوند و به صورت dll هستند و web server در زمان اجراي کدها هيچگونه زماني براي تفسير آنها نمي گذارد و با سريعترين زمان ممکن اجرا مي شوند. لذا چنين حرفي هيچ پايه و اساس علمي ندارد.

براي بررسي سرعت ميان زبان هاي سمت سرور و مقايسه سرعت php و asp.net مقاله زير را مشاهده کنيد:

مقايسه سرعت php ، asp ، asp.net و cgi

همانطور که در نتايج آزمايش مقاله فوق مشخص است، سرعت asp.net قابل مقايسه با ساير زبان ها و تکنولوژي ها نيست و به مقدار قابل توجهي مخصوصا در زماني که مقدار داده ها افزايش مي يابد و مقياس سازماني است سريع تر است.

امنيت php بالاتر است؟

ايمن بودن نرم افزارهاي کدباز يکي از مباحثي است که برخي برنامه نويسان مطرح مي کنند. به طور کلي هر سيستمي که افراد زيادي بر روي آن کار کنند و استفاده کنندگان زيادي داشته باشد به مرور تکميل مي شود. اما کدباز بودن نه تنها دليل بر ايمن بودن نيست بلکه در بسياري از موارد ممکن است باعث شود که سيستم فوق مورد حمله قرار گرفته و هک شود. به عنوان مثال پلتفرم جوملا که بر پايه php است يکي از ضعيف ترين پلتفرم ها از نظر امنيتي است و هر از چندگاهي شاهد هک شدن نسخه هاي مختلف آن در اينترنت هستيم.

برخي از مشکلات امنيتي که ممکن است به خاطر برنامه نويسي سايت پيش بيايد عبارتند از:

Remote code execution

SQL injection

Cross Site Scripting (XSS)

Session Hijacking

XSRF

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

سايت هاي بزرگي مانند گوگل، فيسبوک و آمازون با php برنامه نويسي شده اند؟

پاسخ قطعا منفي است! سايت هاي فوق عمدتا از زبان هاي c++ پايتون و جاوا براي برنامه نويسي سمت سرور خود استفاده مي کنند و به هيچ وجه از پلتفرم هاي اپن سورس مثل php در طراحي بخش هاي اصلي آنها استفاده نشده است. تنها گوگل براي برخي از سرويس هاي جانبي خود به طور محدود از زبان php استفاده مي کند. تنها سايت پربازديد دنيا که از php استفاده مي کرده است سايت ياهو است که آن هم در حال انتقال برنامه هاي خود به زبان جديد node.js است.

براي مشاهده زبان هاي استفاده شده در سايت هاي بزرگ اينترنتي مي توانيد به لينک زير مراجعه نماييد:

مشاهده زبان برنامه نويسي سايت هاي پربازديد اينترنت

اگر ايران به قانون کپي رايت بپيوندد...

در حال حاضر درصد قابل توجهي از سايت هاي بزرگ اينترنتي بر پايه asp.net طراحي شده اند، سوال اينجاست که مگر کشورهاي ديگه از قانون کپي رايت حمايت نمي کنند؟ پس چرا با اين وجود استفاده از تکنولوژي دات نت روز به روز در اين کشورها رو به افزايش است؟ متاسفانه زماني که ما ميخواهيم هزينه استفاده از يک سيستم را محاسبه کنيم فقط به قيمت خريد آن فکرميکنيم و اين فرهنگ در ما ايراني ها وجود دارد.

درست است که زبان php يک زبان اپن سورس و رايگان است، اما اگر شما بخواهيد يک پورتال اينترنتي را با استفاده از آن طراحي کنيد اين کار چقدر زمان خواهد برد؟ آيا خروجي پروژه به مقدار کافي مقياس پذير خواهد بود؟ آيا قابليت توسعه و گسترش کافي خواهد داشت؟ اگر هزينه استخدام يک برنامه نويس n تومان در ماه باشد و پروژه php سه ماه طول بکشد و پياده سازي همان پروژه با asp.net يک ماه زمان بخواهد، عاقلانه خواهد بود که با خريد لايسنس به سمت asp.net برويم يا از سيستم رايگان php استفاده کنيم؟

اگر منطق فوق درست بود، تا کنون تمام کشورهاي دنيا از php استفاده مي کردند و کسي به سراغ asp.net نمي رفت در حاليکه در عمل مي بينيم که چنين نيست.

گرچه سعي کردم بي طرفانه به مقايسه هر دو تکنولوژي فوق بپردازم اما واقعيت اين است که پلتفرم asp.net از نظر امکانات، سطح تکنولوژِي و قابليت هايي که دارد به هيچ وجه قابل مقايسه با زبان اسکريپتي php نيست. استفاده از php تنها زماني منطقي است که يک اسکريپت رايگان و آماده براي پروژه اي که مي خواهيد انجام دهيد وجود داشته باشد و نوشتن مجدد کد مقرون به صرفه نباشد. از طرف ديگر به دليل اينکه سرورهاي لينوکس از asp.net پشتيباني نميکنند و قيمت ارزان تري نسبت به سرورهاي ويندوزي دارند، بسياري از افراد به دليل صرفه جويي در زمينه هاست به سراغ php مي روند، در حاليکه به دليلي که در بخش قانون کپي رايت ذکر کردم چنين کاري مقرون به صرفه نيست!


صفحات سرويس دهنده فعال قديمي (ASP) وASP.NET ميتوانند درکنار يکديگر در يک برنامه WEB اجرا شوند. اين رويکرد به توسعه دهنده اجازه ميدهد برنامهها را به آهستگي جا به جا کند بجاي آنکه همه آنها را يک باره تغييرحالت دهد. درIIS ??? وقبل ازآن، صفحاتي که با نسخههاي متفاوتي ازچارچوب کاري ASP نوشته ميشوند نميتوانستند حالت جلسه را بدون استفاده ازکتابخانههاي مشخص ثابت تقسيم کند. اين ايراد درASP.NET وجود ندارد و برنامههاي ASP درکنار يکديگر بر روي IIS ? اجرا ميشود. در IIS ?، نمونهها ميتوانند درخطوط مجتمع اجرا شوند که اجازه ميدهد تا نمونهها درهرزباني نوشته شود، تا براي هر درخواستي قابل نمايش گردد.[?]

دربرخي موارد در زمان اجراي ASP.NET پردازش عامل در حلقه ميافتد. (به طور مثال اگرآن بدون توجه «بي احتياط» بيايد يا اگرهرکاربرد خارج از کنترل اجرا شود، سبب ميشود که پردازش عامل بيش از ?? درصد از رم موجود را استفاده کند) آن همچنين ميتواند در شرايطي که تعداد معيني ازدرخواستها ارسال ميشود، اتفاق بيفتد براي مثال در يک سيکل زماني. دراين حالات اگربرنامه براي استفاده از جلسه داخلي تنظيم شده باشد، ممکن است کاربران حالت جلسه را ازدست بدهند «گم کنند». اگربرنامه به حالت جلسه براي ذخيره کردن اطلاعات اعتبار سنجي وابسته باشد، و برنامه با استفاده ازجلسات درون پردازشي پيکربندي شود، ممکن است در صورتي که پردازش درحلقه بيفتد ارتباط کاربر قطع شود.

نشانههايي که ASP.NET ??? توليد ميکند توسط W3C تاييد شدهاند. اما اين نکته حائز اهمبت است که ايا اين افزايش قابل دسترسي است؟ يکي از اين مزايا از يک لحاظ صفحات اکساچتيامال + نمايش CSS است. کنترلهاي متعدد از قبيل کنترلهاي ورود و کنترلهاي چند مرحلهاي، به صورت پيش فرض از جداول HTML استفاده ميکنند. مايکروسافت هم اکنون به سمت طرقي ميرود که اين مشکل را به وسيله انتشار کنترلهاي سازگار کننده? ASP.NET 2.? CSS حل کند. به طور مثال افزودنيهاي رايگان که نشانههايي مطابق با اکساچتيامال+CSS در دسترس توليد ميکنند. به هر حال برخي از کنترلها هنوز به جاوااسکريپت استناد ميکنند.

چه زماني بهتر است از php استفاده کنيم؟

اگر پروژه اي که ميخواهيد انجام دهيد يک پروژه کوچک است و در مقياس هاي بزرگ عملياتي اجرائي نميشود php ميتواند گزينه خوبي باشد.

اگر اسکريپت هاي آماده و کدهاي آماده براي پروژه فوق به زبان php وجود دارند، گزينه مناسبي است.

اگر سرور شما لينوکس است، از php استفاده کنيد.

چه زماني بهتر است از asp.net استفاده کنيم؟

اگر پروژه شامل انواع نقش هاي سيستمي و سطوح دستري مختلف و يک پورتال است از دات نت استفاده کنيد

اگر مي خواهيد از ساختارهاي نوين برنامه نويسي مانند MVC استفاده کنيد از دات نت استفاده کنيد

اگر مي خواهيد نرم افزار وب شما به صورت شي گرا توليد شود از دات نت استفاده کنيد

اگر به دنبال توسعه ساختار و پشتيباني سيستم در دراز مدت هستند و ديد کوتاه مدت به پروژه نداريد از دات نت استفاده کنيد

برچسب: نویسنده: حسن تاريخ: چهارشنبه 1 آبان 1392 ساعت: 0:28

صفحه بندی