سلام
تعجب میکنم چرا انقدر به php بها میدن
یک کد تنظیم attribute رو المنت رو هنوز نتونستم پیدا کنم
درصورتی که در asp میشه
درضمن فانکشن های php رو یا نمیشه یا اگر هم میشه به سختی با کد زیاد باید مثلا در onclick یک باتن اجرا کنیم
درصورتی که در asp فقط کافیه event مورد نظر رو انتخاب کنیم و با 2 بار کلیک به پنجره کد نویسی بریم
نا توابع در php خلاصه شده و نامفهوم تر هستند
درصورتی که در asp نام توابع با نظم یکسان در کلاس ها گنجانده شده است
چرا php ؟
php کارها کامنت بزارید
مشکل شما اینجاست که asp.net را با پی اچ پی مقایسه میکنید.
asp.net یک فریمورک برای زبان سی شارپ و پی اچ پی خودش فقط یک زبان برنامه نویسی هست مثل سی شارپ
پس مقایسه این دو از اصل و اساس اشتباه هست. و نمیشه باهم مقایسش کرد.
شما اگر میخواهید مقایسه کنید لاراول باید با asp.net مقایسه کنید.
و اینم باید بگم که کلا ماهیت این دو هم فرق داره با هم.
زبان پی اچ پی مفسری هست زبان سی شارپ و asp.net کامپایلری هست.
زبان پی اچ پی یک زبان داینامیک هست که بحث تایپ برای متغیر هاش نداره و تعداد زیادی مجیک متد داره که انعطاف پذیریش بالاتر میبره. و اینکه میشه با ساختار های مختلف طراحی نرم افزار باهاش برنامه و سایت نوشت.
شما میتونید با یک تک فایل index.php یک وبسایت خیلی بزرگ طراحی کنید یا اینکه کاملا شی گرا کار کنید و...
هر کدام در جای خود کاربرد دارد، این سوال شما شبیه این است که بگوییم چرا وقتی آچار فرانسه هست از آچارهای دیگه استفاده کنیم یا ....؟
و البته اگر یه تحقیق کوچک داشته باشید متوجه میشوید که 80 درصد وبسایت های دنیا رو شاخ php سوار شدن ( این نه به این معنی که php بهتره.به این معنی که این حالت عجیبی از تعجب که شما دارید رو شاید کمی کمتر کنه ، چیزی که اتفاق افتاده و مرسوم شده تازه شده دیگه چیکار میشه کرد !). شاید اختصاصی بودن php برای وب و یا تقدم اون از لحاظ زمانی باعث برتری بر asp.net در بازار کارشده
منم میدونم یک فریم ورک هست اما میگم چرا باید یک زبان سخت تر رو ترجیح بدم به زبان اسون تر
اگر میتونید مشکلاتی که از php گرفتم رو حل کنید
لازم نیست من رو در انتخاب بین این دو راهنمایی کنید
@amirmahdavinejad سلام . سوالتون بسیار نامفهوم و پیچیدس و فک میکنم منظور اصلیتون این هست که با زبان ASP بهتر میشه کار کرد یا راحت تره. پس بذارید مثالی مطرح کنم :
سوال شما مثل اینه بگیم برای مسافرت از تهران به مشهد با خودرو ، من با بنز میتونم رانندگی بکنم چون بنز (= ASP با توجه به مثال شما ) کیلومترش زوجه ! مانیتورش حساسیت بیشتری داره! صندوقش هم از داخل باز میشه و هم با ریموت اما تویوتا (= PHP باز هم با توجه به مثال شما) کیلومتر فرد داره ! مانیتورش تاچش ضعیفه ! فقط هم باک بنزینش با دکمه باز میشه !
شاید کمی مثالم مبهم و بی ربطه اما این به این دلیله که سوال شما هم مبهم و پر از اشکاله . هدف ما از مسافرت طی کردن مسیر از تهران تا مشهده پس فرقی نمیکنه توی راه ، کیلومتر اعداد زوج یا فرد رو نمایش بده (چون تعویضش همیشه در درسترسه) یا صندوق رو با ریموت باز کنید یا با دست ( چون در نهایت برای استفاده از صندوق باید پیاده بشید و وسیله بردارید ) مهم اینه که با هر دو ماشین مسیر یکسانی رو طی میکنید و به مقصد هم میرسید . ممکنه هزاران نفر با بنز احساس بهتری داشته باشن و هزاران نفر دیگه با تویوتا. الان اگر این مثال رو تعمیم بدیم؛ برای زبان برنامه نویسی هم همین هست ( به شرط استفاده از ابزارهای درست و مقایسه درست -> ماشین با ماشین نه ماشین با دوچرخه ) همه زبانها قابلیت اجرای هرچیزی رو دارن اما اگر شما به نوعی واستون سخت و طاقت فرساست و از یکی از اینها بیشتر خوشتون میاد ، بحث سلیقه مطرحه نه ناتوانی و بد بودن زبان دیگه. ( مگر موارد خاصی که پرفورمنس داخلش تاثیر داره و مجبورید سراغ ابزار های مخصوص اون کار برید)
پس اگر اول راه هستید حتما حتما حتما پیشنهاد میکنم با خودتون صاف و صادق باشید بخوبی تحقیق کنید و یکبار برای همیشه تعصبو کنار بذارید و زبانی که دوسش دارید و از کار باهاش لذت میبرید استفاده کنید و تا تهش پیش برید و اینقدر داخلش متخصص بشید که بتونید هر کاری رو باهاش انجام بدید چون اگر الان جلوی این قضیه رو نگیرید این مقایسه لعنتی!! تا ابد با شما خواهد موند و زمانی هم که مثلا PHP یاد گرفتید و خواستید سراغ ASP برید چون ASP رو بیشتر دوست دارین دلتون نمیاد زمانی که برای PHP صرف کردین رو نادیده بگیرید. ( مواردی که گفتم عین واقعیته و قطعا طی زمان بهش برخورد میکنید - حداقل برای من که تجربه خوبی نبوده و در زمان گذشته توی کلاس های برنامه نویسی معیار دانشجوها دیجیکالا بود !!! اگر دیجیکالا ASP بود پس اون بهترین زبان بود و اگر PHP بود PHP بهترین زبان بود !)
ممکنه مطالب من خیلی ناقص باشه . در هر صورت در سطح توانایی خودم پیشنهادات و توضیحات رو ارائه دادم.
امیدوارم مسیر درستی رو انتخاب کنید و موفق باشید
دوستمون به نکته خوبی اشاره کرد در مورد زبان و فریمورک..
سوای از اون: مایکروسافت از سالهای اولی که PHP پیداش میشه، با کمی تاخیر همیشه یک alternative ارائه داده.
مسلما تفاوت های زیادی بین این 2 زبان هست.
اما در کنار این تفاوت ها در هر دو زبان به خوبی میشه از شئ گرایی استفاده کرد و اپلیکیشن های قابل توسعه نوشت..
نکته اصلی اینه که: این ها همه ابزار های مختلف هستند که هر کدوم در شرایط خاص از دیگری مناسب تره
همونطور که ممکنه ساختار PHP به نظر شما بی نظم باشه.. از دید یک توسعه دهنده PHP ممکنه عکس این قضیه صادق باشه.
منم میدونم یک فریم ورک هست اما میگم چرا باید یک زبان سخت تر رو ترجیح بدم به زبان اسون تر
اگر میتونید مشکلاتی که از php گرفتم رو حل کنید
لازم نیست من رو در انتخاب بین این دو راهنمایی کنید
با توجه به این پاسختون فکر کنم شما بیشتر دنبال این هستید که بگید asp.net بهتر هست از php و یک بحث بیهوده را پیش ببرید.
اما اگر بخوام یک پاسخ بدم به سوالتون توی پست اول :
چرا php ؟
باید بگم دلایل زیادی داره حداقل برای من این دلایل خیلی تاثیر گذار بوده
1- قبل از اینکه asp.net core بخواد عرضه بشه asp یک فریمورک صد در صد تجاری بود که وابسته بود به ابزار های تجاری مثل ویندوز و ویژوال استودیو که پولی هست. و برای دپلوی یک برنامه asp باید سرور ویندوزی تهیه میکردی و هزینه نگهداری اون به مراتب بیشتر بود از یک برنامه php که اپن سورس بود و روی همه پلتفرم ها اجرا میشد.
2- بازار کار php به مراتب بهتر بود و الانم بهتر نباشه حداقل مساوی هست با asp.net
3- تعداد زیادی از مدیریت محتوا های موجود توی اینترنت که به صورت رایگان و متن باز ارائه شدند بر پایه php هست و شما میتونید با استفاده از اونها به شدت توی هزینه های ساخت نرم افزارتون صرفه جویی کنید از نمونه هاش میتونم به وردپرس اشاره کنم که خودش به تنهایی یک درصد قابل توجهی از وبسایت های کل دنیا را شامل میشه و جوملا و دروپال برای فروشگاه اینترنتی میشه مجنتو و پرستاشاپ و... را مثال زد و....
4- علاوه بر اسکریپت ها و مدیریت محتوا هایی که وجود داره به دلیل متن باز بودن php تعداد بسیار زیادی فریمورک و پکیج و کد آماده وجود داره که شما میتونید به سلیقه خودتون و بر اساس نیاز هاتون از بین اونها انتخاب کنید و برنامتون توسعه بدید.
و ...
اما خوب تمام اینها معنیش این نیست که من دارم php کار میکنم کارم درسته یا اینکه شما دارید asp.net کار میکنید کارتون درسته. نه هیچ ربطی نداره.
اینها در نهایت همش ابزار هست و بر اساس سلیقه و صد البته بنا به نیاز هایی که یک پروژه داره میتونه استک نرم افزاری تغییر بکنه و اینکه بخواهیم بگیم php بهتره یا asp اشتباه هست.
یک کد تنظیم attribute رو المنت رو هنوز نتونستم پیدا کنم درصورتی که در asp میشه
این نشون میده شما بدون استفاده از محیط ویژوال استودیو نمیتونین کد بزنید.
درضمن فانکشن های php رو یا نمیشه یا اگر هم میشه به سختی با کد زیاد باید مثلا در onclick یک باتن اجرا کنیم
این بحث خیلی ساده تر از اونیه که فکر میکنی اخه اگر این ویژوال استودیو اون محیط رو در اختیار شما نذاره فکر کنم کلا برنامه نویسی نمیکنید.
چرا php ؟
جدا از تمامی مباحثی که دوستان مطرح کردن جا داره این چند مورد رو هم من عرض کنم:
1- جامعهی بسیار گسترده و فعال php در سرتاسر دنیا که تقریبا هر مشکلی که شما فکرش رو بکنید یک بار در stackoverflow مطرح شده و حل شده.
2- برای یک پروژه بر پایهی php کمترین هزینه رو خواهید کرد، شما به سادگی و با کمترین هزینه میتونید روی هاستهای اشتراکی و ارزان پروژه ی خودتون رو پیاده سازی کنید.
3- فریمورکهای بسیار کابردی و جذاب php که هر سلیقه و کاربردی رو پوشش میده! کدایگنایتر با سادگی و سرعت خیلی جذابش رو در نظر بگیرید و لاراول با دنیای وسیعی از امکانات!
4- اینکه قرار باشه به عنوان یک برنامه نویس روی زبان و یا فریمورکی تعصب داشته باشید بدون شک راه پیشرفت خودتون رو خیلی راحت دارید میبندید. پی اچ پی و فریمورکهاش در موارد بسیار زیادی زیادی گزینهی مطلوب هستن و در موارد زیادی هم نیستن! یک توسعهدهندهی حرفهای بسته به نوع نیاز پروژهای که در اختیار داره از زبان و فریم ورک مناسب به عنوان یک ابزار کار استفاده میکنه نه اینکه خودش ابزاری برای زبان باشه!
چرا باید یک زبانی که کاربرد اون توی بک اند هست بتونه onclick که توی ui هست رو دریافت کنه؟ یا همینطور چرا باید بتونه attribute تگ html رو ست کنه؟
اون چیزایی که شما میخوای با php انجام بدی مربوط به html و javascript در سمت ui هستش.
(حتی javascript ی که توی backend استفاده میشه با javascrptی که توی ui استفاده میشه متفاوت هستش و نمیتونه به ui مستقیم دسترسی داشته باشه)
شما اول یک بار برو تحقیق کن ببین فرق backend و ui و .... چیه. (یعنی قشنگ مطالعه کن کارشون چیه که خودت فرقشون رو متوجه بشی وگرنه کسی نیومده فرق این دوتا رو لیست کنه)
و آیا این امکان وجود داره که یک برنامه نصفش روی سرور لود بشه و نصف دیگش رو مرورگر؟
و فکر می کنم که شما تا الان با javascript کار نکردی ... فریمورک asp موقع اجرا برای شما کد های javascript رو توی ui به صفحه شما اضافه می کنه و شما از اون بی خبری و اون ها attribute رو تغییر میدن یا onclick ها رو دریافت می کنن و باز دوباره به asp می فرستن
اگه در آینده که شما پیشرفت بیشتری کردی و تصمیم گرفتی ui بهتری بسازی باز مجبور میشی ui و backend رو از هم جدا کنی و اونجا هم باز با asp نمیشه به ui مستقیم دسترسی داشت.
من طرفدار php نیستم و این در مورد همه زبان ها هستش ...
در کل همیشه با دوستانی که فقط از سیشارپ و فریمورک های مربوط به اون استفاده می کنن همچین مشکلاتی رو داریم (در هر سطحی هم باشن یک سری مطالب رو نمی تونن درک کنن و فکر می کنن بقیه مردم مشکل دارن و از روی بی عقلی راهی که از دید اونها مناسب هست رو انتخاب نکردن)
اگر قرار نیست دریافت کنه پس چه طوری وقتی روی یک کلید کلیک کنیم اطلاعاتی رو با php در mysql ذخیره کنیم؟
نباید php در onclick دخیل باشه؟
باید php در onclick دخیل باشه؟
نه نباید باشه
چون بک اند ربطی به event های ui نداره ..
توی سیشارپ هم همینه
این وظیفه javascript هستش که این کار رو بکنه
همونطور که گفتم این کد جاوا اسکریپت رو فریمورک asp برای شما میسازه (خیلی از فریمورک های دیگه هم میتونن این کار رو بکنن)
یعنی وقتی شما اون 2تاکلیک رو انجام میدی asp میاد برای شما یک سری کد java script می نویسه که event مربوط به onclick رو دریافت می کنه و به بکاند شما که سیشارپ هست می فرسته و شما اون رو نمیبینی و تصور می کنی خود سیشارپ این کار رو می کنه
اگه شما asp رو برای قسمت ui کنار بزاری و مستقیم با سیشارپ کار کنی باید خودت بیای و کد های مربوط به ui رو با javascript بنویسی (که خیلی ها این حالت رو بیشتر ترجیه میدن)
اگر قرار نیست دریافت کنه پس چه طوری وقتی روی یک کلید کلیک کنیم اطلاعاتی رو با php در mysql ذخیره کنیم؟
در اصل با کلیک روی کلید نباید چیزی ذخیره بشه:
با کلیک روی کلید باید از برنامه ui پیامی به سرور ارسال بشه و سرور اون رو به برنامه backend بفرسته .. اگه اون پیام مشکلی نداشت و طبق پیشبینی های شما بود بک اند نسبت به اون کاری رو انجام میده که میتونه ذخیره کردن یا چیز دیگه ای باشه
در asp همه این مراحل با اون کلیک شما اتوماتیک ایجاد میشه .. به همین راحتی
ولی خپ بعدا هم دردسر های بیشتری برای شما بوجود میاره و کار برای شما سخت تر میشه
حرف شما کاملا بی منطقه مثل مقایسه صندلی با ماشینه php یک زبونه ولی .net ی فریم ورک اگر میخواید مقایسه کنید باید لاراول رو مقایسه کنید که از همه نظر سر تره.
ضمن اینکه لاراول و دات نت فریم ورک بک اند بحساب میان و اون onclick که گفتید مربوط به فرانت میشه(با اینکه لاراول livewire داره)
لاراول از همه نوع پایگان داده ساختاری پشتیبانی میکنه، سینتکس بسیار تمیزی داره برای احراز هویت کلی فیچر مهم و امنیتی داره.
قابلیت اتصال فرانت اند با بک اند بصورا لایو وایر داره که اطلاعات بلا فاصه وارد بک اند میشه و در صورت نیاز ذخیره.
Rate limiter& req lvl validation داره
برای تنظیم دسترسی ها چندید قابلیت از جمله gate policy permission و role داره،
روی هاست اشتراکی هم دپلوی میشه.
و کد شما DRY هست (don't repeat yourself)
قابلیت مایکرو سرویس، گرفکیوال و rest api از ساده ترین قابلیت هاشه.
Domain route controller داره.
و.. خیلی فیچر های دیگه...
ضمن اینکه اکثر برنامه نویس های دات نت بدون محیط ویژوال استودیو نمیتونن کد بزنن :)
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟