بین توسعه دهنده های سایت خیلی بحث و تناقض بین انتخاب ASP.Net یا PHP بوده. به نظر شما کدوم یکی بهتره؟
اگه از برنامه نویس ها بپرسید، مثل همیشه میخوان دوباره بگن نمیدونن کار با کدومش راحتتره یا کدومش امکانات بیشتری در اختیار کاربر میذاره، این بحث ها هنوز تموم نشده.
توسعه دهنده ها هم که انقد که تو برنامه نویسی از زبون PHP استفاده کردن، بهش معتاد شدن. از طرف دیگه با زبون ASP.Net هم داریم که تحت حمایت میکروسافته و تو همه زبون هایی که .NET رو ساپورت میکنن قابل اجراست.
اما با همه اینها، انتخاب با خودتونه. اگه این کار مال شماست، یعنی قراره نیازهای شمارو رفع کنه، پس خودتونم باید بگید PHP برای کارتون مناسب تره یا باید کارتونو رو پلتفرم .NET توسعه بدید؟
تو این مقاله امکانات هر کدوم از این زبون ها رو بررسی می کنیم و مزایاشونو براتون میگم تا راحتتر بتونید تصمیم بگیرید و همونی رو انتخاب کنید که مناسب کارتون باشه.
PHP یه زبون برای پردازش ابرمتن. تو اینترنت بخاطر منحنی یادگیری خوشگلش کلی قلب گرفته. تازه خیلی از توسه دهنده ها هم طرفدارشن.
اجازه بدید قبل از اینکه بخوام فرق این دو تا زبون رو براتون بگم، یه تفاوت مهمشونو اول یادآوری کنم که حتما باید همیشه گوشه ذهنتون باشه، تا بتونید انتخاب خوبی داشته باشید.
نکته اینجاست که PHP یه زبون برنامه نویسیه، اما ASP.NET جزء دسته زبون های برنامه نویسی نیست. C# یا VB.Net زبون هایی هستن که معمولا با ASP.Net استفاده میشن.
حالا قضیه روشنه! پس اصلا نمیشه بین PHP و ASP.NET مقایسه داشته باشیم. چون دومی چارچوب وب ولی اولی یه زبون برنامه نویسیه.
منم قراره درباره مزایا و امکانات این دو تا صحبت کنم، چون میدونید که اینا دو تا چیز متفاوتن.
شاید براتون جالب باشه که بدونید PHP رو 244 میلیون سایت نصب شده. یه چیز دیگه اینکه کاملا رایگانه و با یه سری چارچوب ها جمع شده و در نتیجه توسعه سایت رو خیلی آسون کرده.
بهترین مثال ها وردپرس و فیسبوکن. اینا همه قدرتشونو مدیون PHP هستن.
حالا بیاید ببینیم ASP.Net چی داره که انقد محبوب شده؟
ASP.NET هم یه چارچوب وب و هم یه ابزار برنامه نویسی که میکروسافت توسعش داده و میشه باهاش برای سایت برنامه و صفحه های مختلف ساخت.
قدرت جادویی ASP.Net رو میتونید تو MySpace و PlentyofFish.com ببینید.
همونطور که گفتم، حالا دیگه میدونید که ASP.NET باید با زبون های برنامه نویسی استفاده بشه. بذارید براتون مزایا و معایب استفاده از PHP و ASP.Net رو بشمرم:
خب گفتیم که PHP رایگانه، و ASP.Net یکی از محصولات میکروسافته که یعنی رایگان نیست. درسته که کشور ما بخاطر تحریم ها از این قضیه مستثنی است، ولی بد نیست بدونید. و البته برای هموطنایی که خارج از ایران زندگی میکنن یا اونایی که تو ایرانن ولی دوست دارن قانون کپی رایت رو رعایت کنن، در مورد هزینه هاشم توضیح میدم.
حالا اگه بخواهید از ASP.Net استفاده کنید باید چه هزینه هایی رو بپردازید؟
دو تا نکته ساده که باید با توجه به هدفتون از توسعه سایت مد نظر قرار بدید رو در پایین براتون توضیح دادم. کاری به این نداشته باشید که میخواهید PHP رو انتخاب کنید یا ASP.Net. فقط باید بتونید اینا رو تو یکی از گروه های زیر جا بدید:
از نظر هزینه ها و قیمت ها، PHP بهتره.
منظور از توانایی عملکرد برنامه های سایت چیه؟ این توانایی رو با توانایی برقراری ارتباط بین دیتابیس، اسکریپت و سرور میسنجند.
وقتی دارید یه برنامه تحت وب تو PHP کار میذارید، فرم LAMP به خودش میگیره، L برای لینوکس، A برای آپاچی، M برای مای اس.کیو.ال، P برای PHP. این جمع LAMP افزایش کارایی رو تضمین می کنه. شما هم که همینو میخواهید.
دیتابیسی که همراه با ASP.NET استفاده میشه دیتابس مای اس.کیو.ال هست.
سیستم عامل و سیستم فایلی که رو سرور استفاده میشه خیلی رو عملکرد تأثیر داره. در حقیقت، سیستم اجرایی لینوکس و سیستم فایل ext4 در مقایسه با سیستم فایل NTFS و ویندوز عملکرد بالاتری رو نشون میدن.
اینم باید اضافه کنم که یه برنامه PHP رو سیستم عامل لینوکس شانس عملکرد بالاتری نسبت به یه برنامه ASP.Net روی سیستم عامل ویندوز داره.
این نشون میده عملکرد و سرعت پلتفرم بهم وابسته اند. سرعت برقراری ارتباط بین سرور و زمانی که طول می کشه تا مرورگر سایت رو باز کنه بهم وابسته اند و ربطی نداره که از چه زبون برنامه نویسی یا پلتفرمی برای توسعه برنامه تحت وب استفاده می کنید.
خب پس کی سرعت تحت تأثیر قرار میگیره؟
سرعت پلتفرم با سه روش میتونه تست بشه.
اولین باری که متوجه سرعت میشید، وقتیه که سایتتون میخواد با سرور ارتباط برقرار کنه. اینجا ما سرعت پلتفرم رو چک نمی کنیم ولی چیزی که مهمه، سرعت سرورهای دیتابیس بک-انده.
حالا همینکه برنامه تحت وب میخواد با فایل دیتابیس (که تو سیستم فایل قرار داره) ارتباط برقرار کنه، از سرعت سیستم عاملی استفاده می کنه که داره روش کار می کنه.
همونطور که توضیح دادم، ASP.Net یه چارچوبه و فقط تو پلتفرم های برپایه ویندوز میتونه کار کنه، اما PHP میتونه تو همه سیستم های اجرایی کار کنه. یکی از دلیلاشم اینه که منبع بازه.
سرعت و عملکرد، دو تا مزیت سرورهای PHP به شمار میرن، ولی ASP.Net عملکرد ضعیفی نشون داده.
اما موقع کد نویسی و اجرا، PHP و کلا زبان های برنامه نویسی نمیتونن سرعت و کارایی ASP.NET رو داشته باشن.
هر دو PHP و ASP.Net مقیاس پذیری خیلی خوبی دارن. بستگی به این داره که توسعه دهنده تو استفاده از هر کدوم اینا چقد حرفه ای باشه.
پر ترافیک ترین سایت جهان مای اس.کیو.ال که روی PHP ساخته شده و از طرف دیگه فیسبوکو داریم که از ASP.Net استفاده می کنه.
همونطور که توضیح دادم، PHP یکی از زبون های برنامه نویسیه که رایگان و منبع بازه و جامعه کثیری از توسعه دهنده ها ازش استفاده می کنن.
من دیدم بیشتر توسعه دهنده های PHP بیشتر دوست دارن به جای اجرای یک IDE کامل، از ویرایشگرهای متن، مثل VIM و Notepad++ استفاده کنن.
اما میتونید هم از PHP استفاده کنید و هم با IDE کار کنید. اگه اینطوری ترجیح میدید، میتونید از ویرایشگر Eclipse استفاده کنید که رایگان هم هست.
شاید خودتون بدونید که خیلی از IDE ها از ASP.Net پشتیبانی می کنن، اما با Visual Studioی میکروسافت هم میتونید استفادش کنید. رایگان نیست ولی امکانات خوبی داره و یکی از منعطف ترین IDEهاست.
پس اگه میتونید براش یه مقدار کنار بذارید، ASP.Net بهتره.
سختی یا سادگی یادگرفتنش؟
اگه تازه کار باشید، شاید براتون یکم سخت باشه تا با ASP.Net آشنا بشید، چون با زبان #C برنامه نویسی شده که این زبون از C مشتق شده و همونطور که می دونید، ترجمه ترکیب C سخت و پیچیدست، هرچقدرم که برنامه نویس حرفه ای باشه.
اما یادگرفتن PHP ساده و آسونه، چون فقط با چند خط کد سر و کار دارید.
خب کی برد؟
PHP یا ASP.Net؟
جوابتون چیه؟ نتیجه گیری من میگه PHP. بخاطر امکاناتی که ارائه میده و رایگان بودنش.
شما از چه زبان برنامه نویسی برای توسعه تحت وب استفاده می کنید؟
در کد نویسی سنتی جاوا اسکریپت, در صورتی که قصد داشته باشد از دیتابیس و یا فایلی بر روی سرور اطلاعات بگیرید, و یا ارسال اطلاعات کاربر به سرور, شما می بایست برای ارسال اطلاعات به دو روش get و post فرم طراحی می نمودید. و کاربر مجبور بود بر روی کلید ارسال کلیک نماید تا اطلاعات ارسال گردد, و منتظر پاسخ سرور باقی می ماند, و سپس صفحه جدید با نتایج لود می شود.
زیرا زمانی که کاربر بر روی کلید ارسال کلیک می نماید صفحه جدید باز می شود, طراحی سایت سنتی مدت زمان بیشتری را از کاربر می گرفت و مورد پسند کاربران نیز نبود. توسط ajax سایت توسط javascript به صورت مستقیم با سرور در ارتباط می باشد, که این کار از طریق آبجکت JavaScript XMLHttpRequest انجام می شود.
با یک درخواست HTTP, صفحه وب سایت می تواند درخواست خود را ارسال نماید, و سپس از وب سرور پاسخ بگیرد, بدون نیاز به بارگذاری مجدد صفحه. کاربر در همان صفحه اول باقی می ماند, و کاربر متوجه این موضوع نخواهد گردید که در پس زمینه برنامه در حال انجام است.
تصویر زیر نحوه عملکرد Ajax را نمایش می دهد:
کاربر درخواستی را انجام می دهد و در پس زمینه فرآیندها انجام می شود و سپس در لایه ای به درخواست کاربر پاسخ داده می شود, که محعمولا توسط ID شناخته می شود, بدون لود کامل صفحه. به عنوان مثال یک لایه با این آی دی:
در مرحله بعدی ما می بینیم که چطور یک درخواست XMLHttpRequest ارسال می شود و پاسخ گرفته می شود.
مرورگرهای مختلف روش های متفاوتی برای ساخت XMLHttpRequest دارند. اینترنت اکسپلورر از ActiveXObject استفاده می نماید, در صورتی که سایر مرورگرها از XMLHttpRequest که تابع داخلی جاوا اسکریپت می باشد استفاده می نمایند.
برای آنکه این آبجکت ساخته شود و با مرورگرهای مختلف سازگاری کامل داشته باشد می بایست از “try and catch” استفاده نمایید.
function ajaxFunction()
{
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject(“Msxml2.XMLHTTP”);
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject(“Microsoft.XMLHTTP”);
}
catch (e)
{
alert(“Your browser does not support AJAX!”);
return false;
}
}
}
برای ارسال درخواست به سرور, ما از متدهای open() و send() استفاده می نماییم.
متد open() سه آرگومان می پزیرد. ا.ولین آرگومان تعیین می نماید از چه روشی درخواست ارسال می گردد (GET یا POST). دومین آرگومان مکان اسکریپت را برای اجرا مشخص می نماید. سومین آرگومان مشخص می نماید درخواست چگونه می بایست اجرا شود. متد send() درخواست را به سرور ارسال می نماید.
responseText داده هایی که از سرور پاسخ داده می شود را نگهداری می نماید. در اینجا ما می خواهیم زمان حال را نمایش دهیم. کد سایت “time.php” چیزی است شبیه به این:
سپس ما پاسخ را دریافت می کنیم و نمایش می دهیم.
و شما می بایست تصمیم بگیرید چه زمانی AJAX اجرا می شود. در این مثال AJAX اجرا خواهید شد زمانی که کاربر در باکس متن تایپ می نماید. مثال در کد پایین می باشد:
<html>
<body>
<script type=”text/javascript”>
function ajaxFunction()
{
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject(“Msxml2.XMLHTTP”);
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject(“Microsoft.XMLHTTP”);
}
catch (e)
{
alert(“Your browser does not support AJAX!”);
return false;
}
}
}
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.myForm.time.value=xmlHttp.responseText;
}
}
xmlHttp.open(“GET”,”time.asp”,true);
xmlHttp.send(null);
}
</script>
<form name=”myForm”>
Name: <input type=”text”
onkeyup=”ajaxFunction();” name=”username” />
Time: <input type=”text” name=”time” />
</form>
</body>
</html>