# مباحث مرتبط با توسعه وب > توسعه وب (Web Development) >  PHP  یا ASP.Net ?

## rostamiani

لطفا هر کسی با هر کدوم از این زبان ها مشکلی داشته و فکر می کنه برای انتخاب زبان سایت می تونه کمک کنه، بگه.
 من می خوام سایتی بسازم که بیشتر شامل این موارد می شه:

 1.نشان دادن اخبار روزانه و نوشتن اخبار جدید توسط Admin
 2.عضو گیری و فرستادن پیغام بین اعضا و Admin
 3.جستجو در میان خبر ها

----------


## vahid4134

هیچ کدوم از این زبانها مشکلی ندارند. نمیشه مقایسه بیشنشون انجام داد(البته از نظر من) هر کدوم کارایی خودشون رو دارند. اما به نظر من از php  استفاده کن چون هاستهای خوبی داره و مشکلاتی رو در آینده برات پیش نمیاره. اطلاعات بیشتری رو هم می خوای می تونی از google  استفاده کنی

----------


## moslem-visual

این مطلب رو قبلا نوشته بودم، البته قصد نداشتم در برنامه نویس ازش استفاده کنم چون چندان تخصصی نیست، به هر حال برای راهنمایی دوستانی که تازه آشنا شدن میزارم، امیدوارم مفید باشه:

اگه هنوز در پیچ و خم انتخاب زبان موندید اصلا نگران نباشید! اصولا انتخاب شما در این زمینه محدود به ASP.Net و PHP هست. اگه سرچ کنید تاپیکهای بسیاری، خارجی و داخلی دارن به هم میپرن که اون بهتره یا این فلانه و ... آخرش هم نتیجه ای نداره! بزارید من به طور بی طرفانه بگم:

زبان PHP یکی از بچه های C هست، یا بهتر بگم نوه اش نیست! با PHP همه کار میشه کرد، از کار با دیتابیس تا پورتها و سوکتها اما همه این کارها فقط با انگشتان شما انجام میشه! بله، شما باید با کامپیوتر حرف بزنید، دستورات PHP رو میشه توی Notepad نوشت یا توی Dreamweaver یا هر جای دیگه ای که بشه تایپ کرد، پس خبری از منو و ویزارد و کنترل و ... نیست. اما نترسید! کل توابع کاربردی و اصول PHP رو میشه در دو ماه به صورت تئوری و حتی عملی یاد گرفت، سادگی این زبان دور از تصورتونه. شما به عنوان برنامه نویس PHP وظیفه دارید از ترکیب این سادگی ها به برنامه نهایی برسید، چون اصول ساده اند قطعا اگر استعداد برنامه نویسی و منطق رو فرا گرفته باشید و صبور و جدی باشید به راحتی بعد از یه مدت موفق خواهید شد برنامه های مختلف رو بنویسید. در اینترنت هم منابع از در و دیوار میباره، کتاب، فروم و مقالات مختلف فارسی و انگلیسی که البته مباحث انگلیسی پربارتر و به روز تر هستند. در PHP یه عده میان و برنامه هایی رو مینویسن که کار خاصی رو انجام میدن، مثلا امکاناتی برای کنترل فرمها یا استخراج از دیتابیس و ... که به اونها "کلاس" میگن، اگه شما بخواهید یه پروژه رو انجام بدید با استفاده از میلیون ها کلاسی که در اینترنت هست تقریبا جز جفت و جور کردنشون کنار هم کار دیگه ای نمیمونه البته تا یکی دو سال اول حتما برنامه هاتون رو خودتون بنویسید تا با اصول و قواعد انس بگیرید. پس مطمئن باشید در دنیای PHP هرگز بن بستی نیست، مطمئن گام برداید!

و اما ASP.Net، این هم مثل PHP از نسل C هست اما میشه گفت یکی از نتیجه هاش! همونطور که میدونید توسط مایکروسافت ابداع شده که البته شروعش بر میگرده به ASP پر افاده و بی مصرف! اما ASP.Net فرق داره، خیلی هم فرق داره. از اون موجودی که ASP نامیده میشد تا ASP.Net از زمین تا آسمون تفاوت هست. تکنولوژی .Net مثل همون کلاسهای PHP هست که گفتم با این تفاوت که همه اونها رو یکجا و در یک محیط مجتمع جا داده، از این محیط همونطور که ASP.Net استفاده میکنه #C و VB.Net هم استفاده میکنند یعنی کاری نیست که بشه با اون دو انجام داد و با ASP.Net نشه (البته قطعا میدونید که سیستم وب با اپلیکیشن های دسکتاپ به کلی متفاوت هست، اینجا قدرت و توابع قابل استفاده مد نظر هست). حالا، خودتون بشینید فکر کنید، اگه مثلا دوست دارید با منوها و کنترلها و یک محیط IDE مثل VisualStudio کار کنید و قبلا هم نشانه هایی از علاقه به VB یا #C در خودتون دیدید بهتون بگم که در ASP.Net همه این چیزها هست به علاوه اینکه برنامه نویسی این زبان رو میتونید با دستورات VB یا #C انجام بدید، در واقع وقتی با محصولات تحت Net. کار میکنید فقط یکسری از سینتکس اولیه عوض میشه و بقیه مشترک هست.

نتیجه:پس فهمیدیم که نمیشه گفت مثلا این بهتره، باید خودتون تصمیم بگیرید که کدوم به مذاقتون خوش میاد. حالا چندتا مورد دیگه :

- از اونجایی که ایرانی ها از بچگی با مایکروسافت بزرگ میشن و یه جورایی هم از کد نوشتن وحشت دارن الان اکثر کارهای رسمی و ملی رو با ASP.Net انجام میدن، البته کم نیستند نمونه هایی که با PHP کار شده، این بر میگرده به علاقه عجیب دولتی ها به مایکروسافت! پس بازار کار برای هر دو هست، محصولات اوپن سورس تقریبا همه با PHP کار شدن که43% حجم اینترنت رو تشکیل میدن، سایتهای اختصاصی هم (57% باقی مانده) نقریبا به طور مساوی بین این دو زبان و زبانهای دیگه (کلدفیژن، جاوا، پیتون، پرل و ...)تقسیم شدن که البته در ایران بیشتر تمایل به ASP.Net هست.

- زبان PHP در ابتدا تنها از سبک ماژولار پشتیبانی میکرد اما حالا میتونید مفاهیم شی گرائی رو به راحتی در این زبان پیاده کنید، این بستگی به خودتون داره. زبان ASP.Net عجین شده با شی گرائی و مفاهیم جدید که اگرچه در پروژه های عظیم امروزی بهتر جواب میده اما لازمه اش تغییر سبک کلی برای اکثر برنامه نویسان هست، مثلا خود من اصلا نمیتونم این مفاهیم رو درک کنم و علاقه ای هم ندارم! اما اونهایی که شی گرائی رو میپسندند خوراکشون ASP.Net هست و بس! در ضمن PHP چیزی به اسم Event یا رویداد نداره، اسکریپت شما از بالا به پاییین به صورت آبشاری تفسیر و اجرا میشه، پس Load و Click و Unload و ... رو بندازید دور! ASP.Net همونطور که گفتم کاملا شی گراست و راه VB رو با جدیت تمام ادامه داده...

- اصولا برای موارد وب سرویس دو نوع سرور لینوکس و ویندوز استفاده میشه. سرورهای لینوکس ارزان تر و اغلب مطمئن تر از سرورهای ویندوز هستند اما در رابطه با سرعت این بستگی به شرایط سخت افزاری داره. اسکریپت PHP نه تنها روی این دو سرور متداول، بلکه بر روی هر سیستم دیگه ای که ممکنه عقل هیچ کدوم ما به اون نرسه هم اجرا میشه یا به عبارتی "قابل حمل" است و خیلی هم سبک و ساده. ASP.Net اسمش داره داد میزنه که من فقط ویندوز میخوام! به عبارتی این زبان فقط بر روی سرور ویندوز کار میکنه که به نوعی میتونه باعث برخی محدودیتها بشه.

- از قدیم گفتن عقد PHP و MySQL رو در آسمانها بستن! MySQL به عنوان یک دیتابیس اپن سورس و بسیار قدرتمند به طور عجیبی با PHP عجین شده به طوری که در PHP یکسری توابع داریم که مخصوص کار با این دیتابیس هستند و خیلی هم کار رو برای برنامه نویس راحت کردن، هر چند PHP با اتصالات مختلفی از جمله ODBC میتونه با دیتابیسهای بسیار زیادی مثل SQLServer، Access،Oracle و ... به خوبی کار کنه اما همونطور که گفتم با MySQL فامیله! ASP.Net هم تقریبا همین نسبت رو با SQL Server داره و اون هم میتونه خیلی از دیتابیسها رو پشتیبانی کنه اما سادگی PHP بازم بر ASP.Net سره. جالبه که مقایسه ای مثل ASP.Net و PHP رو در مورد SQL Server و MySQL هم انجام میدن که اون هم هیچ فایده ای نداره! هر دو دیتابیس قوی هستند و خیلی جاها امتحانشونو پس دادن، مثلا گوگل با این هم داده MySQL رو به کار گرفته و مایکروسافت در پروژه هاش از SQL Server استفاده میکنه، برای کار با هر دو هم فقط باید زبان دیتای SQL رو بلد باشید.

- به دلیل تجاری بودن ASP.Net و SQL Server (که برای ما ایرانی ها مفهمومی نداره!) در کلیه مسابقات آزاد بین المللی پروژه ها به وسیله PHP و MySQL اجرا میشن، از طرفی PHP میزان مهارت و درک برنامه نویس رو با نوشتن تنها یک صفحه مشخص میکنه. منجمله این مسابقات میشه به WSI و تورنمنت های سالیانه اشاره کرد پس اگر قصد ادامه در این حوزه رو دارید هم حواستون رو جمع PHP کنید.

- اگه قصد اجرای پروژه های تیمی رو دارید من توصیه میکنم با توجه به نوع اجراتون روی ASP.Net بیشتر وقت بزارید، در این زمینه PHP به دلیل ساختار ساده ای که در به کارگیری اسکریپتها داره نظم و هماهنگی بیشتری رو در گروه میطلبه که جز گروه های حرفه ای و یا در پروژ های متوسط کمتر وجود داره.

- زبان ASP.Net "حجم" کار رو کم کرده، یعنی ممکنه برای انجام کاری با PHP ده خط برنامه بنویسید در حالی که همین کار در ASP.Net با 4 خط قابل انجام باشه اما از اون طرف پیچیدگی برنامه افزایش پیدا میکنه. در واقع PHP میتونه همین مزیت رو با استفاده از کلاسهایی که قبلا ذکر کردم داشته باشه اما ASP.Net بدون .Net موجودی بی مصرف خواهد بود، با استفاده از PHP میتونید بر اجزای مختلف برنامتون اشراف کامل داشته باشید و در جایی که نیاز دیدید با استفاده از کلاسهای آماده کارتون رو مثل ASP.Net کم حجم کنید.

هنوز نکته های ریز و درشت بسیار بسیار زیادی وجود داره اما فکر میکنم همینقدر برای ایجاد انگیزه در انتخاب زبان کافی باشه. در پایان باید به اصول و گستره ی کار وب توجه زیادی بکنید، همیشه از پایه و اصولی یاد گرفتن زمینه ی موفقیت رو فراهم میکنه. باید اقرار کنم که دنیای توسعه ی وب خیلی خیلی وسیع تر از تصورات من بود، هیچوقت نمیتونید بگید که من یه توسعه دهنده (Developer) کامل وب هستم، من به نوبه ی خودم فقط یک "برنامه نویس" هستم نه توسعه دهنده یا "برنامه ساز". در دنیا اصولا کار به صورت تیمی انجام میشه، مثلا شما برنامه نویسی طرف سرور (مثل PHP) رو انجام میدید، دیگری گرافیک و دیزاین (HTML,CSS,Graphic)، فرد سوم طرف کاربر (JavaScript,VBScript و ...) ، فرد دیگه محیط اکنیو و محاوره ای طرف کاربر (مثل Flash) و نفر N ام فلان کار رو الی آخر که زیر نظر مدیر پروژه و عوامل تحلیلگر و دیباگ و توسعه و امنیت صورت میگیره. حالا ایران رو حساب کنید، یک نفر باید همه ی اینها رو اونهم در نصف زمان و یک سوم قیمت انجام بده، حالا حساب کنید کیفیت پروژه رو...!! ضمن اینکه دانش طرف هم در هر کدوم از این مقوله ها بسیار اندک و به صورت کار راه انداز و حتی در برخی موارد کپی برداریه. به هر حال شما در ایران زندگی میکنید، همینی که هست!

----------


## hamide_kh

سلام
دوست عزیز من هم با دلفی و sql  سرور کار میکنم و جدیدا تصمیم گرفتم برنامه نویسی وب را یاد بگیرم و وقتی مطالب شما را خوندم تصمیم گرفتم که asp  را یاد بگیرم چون دیگه لازم نیست برم mysql را هم یاد بگیرم و فقط باید asp را یاد بگیرم پیشنهاد شما چیست؟آیا تصمیمم درسته

----------


## hamide_kh

آقا جواب ما را نمیدی

----------


## vahid4134

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

----------


## zfarhad2000

منظور از یاد گرفتن MySQL در واقع همون یاد گرفتن دستورات SQL برای ارتباط با پایگاه داده است که یک برنامه نویس حتما باید این دستورات رو یاد داشته باشه تا بتونه با پایگاه داده های مختلف ارتباط برقرار کنه. SQL زبانی هست که متعلق به MySQL نیست و براتون کاربرد خیلی بیشتر داره پس به نظر من جدا از اینکه php یا asp.net رو می‌خواید ادامه بدید حتما SQL رو یاد بگیرید.

بعد از یادگرفتن SQL دیگه بقیه کار با MySQL چیز خاصی نیست چند تا فراخوانی تابع php هست که نیاز به یادگرفتن مفاهیم زیاد هم نداره. چندتا فراخوانی و بعد استفاده از SQL تمام کار همینه.

----------


## hamide_kh

سلام
پس پیشنهاد شما php هست

----------


## vahid4134

من که پیشنهادم php هست

----------


## hamide_kh

سلام
این طور که دوستان گفتند دیگه وقت اضافه ای برای یاد گیری mysql لازم نیست بذارم و با همون دستورات sql کار میکنه

----------


## moslem-visual

همونطور که دوستان گفتند منظور از سازگاری زبانها با یک دیتابیس خاص عمدتا توابعی هست که ارتباط با اون دیتایس رو آسون تر از سایر میکنند، بعد از اتصال به هر حال باید با استفاده از دستورات SQL به دیتابیسها فرمان بدید.

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

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

----------

